【发布时间】:2014-11-03 17:37:13
【问题描述】:
我正在使用 ng-flow 库将图像加载到服务器,在用户拖放图像后,我可以将 HTML 5 文件图像获取到我的控制器,我需要将它与其他参数一起下载到服务器,比如货币,主题等。我用谷歌搜索,发现最好的方法是转换为 json 表单数据并使用 POST 方法发送。当我收到服务器的响应时,我看到表单数据包含主题但不包含图像。有什么问题?
以下代码中的url是真实的,你可以尝试得到你自己的响应。
角度代码:
var file = $flow.files[0];
$http({
method: 'POST',
url: "http://yuppi.com.ua/server/rest/add.php?key=453sdfg3t&action=add",
headers: { 'Content-Type': false },
transformRequest: function (data) {
var formData = new FormData();
formData.append("subject", angular.toJson(data.subject));
formData.append("file", data.file);
return formData;
},
data: { subject: subject, file: file}
}).
success(function (data, status, headers, config) {
alert(data);
}).
error(function (data, status, headers, config) {
alert(data);
});
PHP 代码:
$form = file_get_contents("php://input");
echo "Form: "; print_r($form);
$_FILES 的 var_dump
"array(1) {
["photo"]=>
array(5) {
["name"]=>
string(14) "gradient-2.png"
["type"]=>
string(9) "image/png"
["tmp_name"]=>
string(14) "/tmp/phpY8nqji"
["error"]=>
int(0)
["size"]=>
int(442567)
}
}
【问题讨论】:
-
PHP 中的 $_POST 变量中有什么内容?
-
@progsource 你的意思是
$_FILES对吗?因为$_POST不会填充上传的文件。 -
$_POST 和 $_FILES 变量为空。
标签: javascript php angularjs