【发布时间】:2015-10-17 17:48:07
【问题描述】:
我有一个简单的表格:
<form action="http://localhost/api2/Users/Teachers/imageUpload" method="post" enctype="multipart/form-data" data-ajax="false">
<input type="hidden" name="X-API-KEY" value="21f5ba3c7ac34c81964f5e49b13b9b65914dhar2">
var1: <input type="number" name="var1" ></br>
var2: <input type="number" name="var2" ></br>
image: <input type="file" name="img" multiple></br>
<input type="submit">
</form>
这一切应该做的就是发送带有 api-key、var1、var2 和图像文件的 post 请求。
现在只要表单不尝试发送文件,一切正常。当我尝试发送图像时,就好像我发送了一个空表单。
这是我的一些后端:(我将此设置为默认响应,仅用于测试。)
$var1 = $this->post("var1");
$var2 = $this->post("var2");
$this->response(array("Error"=> TRUE,"message"=>"Missing arguments","data"=>array($var1,$var2,$_FILES)),500);
没有文件的响应:
{
"Error": true,
"message": "Missing arguments",
"data": [
"1",
"2",
[]
]
}
响应文件:
{"Error":true,"message":"Access Denied"}
如果我通过Postman 发送它,我会收到。
{
"Error": true,
"message": "Missing arguments",
"data": [
false,
false,
[]
]
}
我使用codeigniter-restserver 作为我的restAPI 控制器。在我开始上传文件之前它工作得很好。
有人知道是什么原因造成的吗? 谢谢你。
【问题讨论】:
-
尝试将img中的“倍数”取出来,看看是否有效。如果是这样,那么您就知道问题出在哪里了。
-
他们我不确定 - 对不起。
-
如果使用多个选项,您应该使用
name="img[]"。缺少它不应该产生你所描述的行为,但谁知道呢。 -
不管有没有
multiple,它都不起作用。该表格只是为了测试我的后端,这在某种程度上显然是错误的。我发布了我的后端的“精髓”。我也一直在使用Postman插件进行测试,我发现当一个文件被传递时,Headers之后的所有内容都没有传递(表单数据)。也许这是一个线索?
标签: php html codeigniter rest file-upload