Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将文件上载到API_Php_Httprequest_Image Uploading - Fatal编程技术网

Php 如何将文件上载到API

Php 如何将文件上载到API,php,httprequest,image-uploading,Php,Httprequest,Image Uploading,让我们假设我有一个PHP服务器。我正在为此服务器创建一个API。我希望收到一个请求,在哪里 $_POST["FileContent"] 将包含文件内容和 $_POST["FileName"] 将包含文件名。我的问题是,我没有做过类似的事情,现在我唯一能上传文件的方法就是使用file类型的输入。如果我只是以二进制方式加载文件,那么我希望使用最佳实践方法,并且我还希望确保内容确实是图像内容,而不是PHP上传注入。如何实现这一点?您应该在客户端对文件内容进行base64编码,在API端进行base

让我们假设我有一个PHP服务器。我正在为此服务器创建一个API。我希望收到一个请求,在哪里

$_POST["FileContent"]
将包含文件内容和

$_POST["FileName"]

将包含文件名。我的问题是,我没有做过类似的事情,现在我唯一能上传文件的方法就是使用file类型的输入。如果我只是以二进制方式加载文件,那么我希望使用最佳实践方法,并且我还希望确保内容确实是图像内容,而不是PHP上传注入。如何实现这一点?

您应该在客户端对文件内容进行base64编码,在API端进行base64解码

// client (pseudo-code)
data = {FileName: "someFileName", FileContents: base64Encode(someFile)}

// api
$fileContents = base64_decode($_POST['FileContents']);
$fileName     = $_POST['FileName'];

file_put_contents('path/to/upload/' . $fileName, $fileContents);

您可以使用base64函数,然后在服务器上发布数据。或者您可以使用$\u文件进行经典上载…base64在哪里?安卓网间网操作系统?我的网络操场?我真的很想知道为什么我的问题如此糟糕以至于被否决了。我是不是遗漏了什么?我在问一种不关心下议院选民的方法,大多数时候,他们只是无知的人,无法提供帮助,他们只是下议院投票,让自己相信自己有价值。我必须感谢Albanx和Kylehyde215,他们最初的想法让我在服务器端解决了这个问题,我还在操场上创建了一个非常好的功能来测试它。谢谢你们两位。听起来不错,我来试试。不幸的是,我必须去几分钟,但我会测试你的想法,如果它是一个有效的答案,然后我会上传并接受它。所以你是说我应该以任何客户为基础是的。无论向API发送请求的是什么,都需要对文件内容进行base64编码。现在,如果该客户端只是一个javascript前端,我不确定这是否可行。可能是新的文件API,但我不太熟悉。文件API和base64函数都可以。重要的是要知道文件是如何选择的:如果html然后使用文件API和post文件与ajax使用FORMDATA,如果android那么我很确定有一个base64内置函数我已经知道这个答案至少值得一次投票,但我仍在创建概念证明