我正试图将文件从js上传到像这样的
var formData = new FormData();
formData.append('file', uploadedFile);
var request = new XMLHttpRequest();
request.onload = function () {
if (request.readyState == 4) {
var response = JSON.parse(request.responseText);
console.log(response);
}
};
request.open('POST', settings.restUri + 'files');
request.setRequestHeader("Content-Type", "multipart/form-data");
request.send(formData);
结果我的请求有效负载看起来像这样
------WebKitFormBoundaryRl1Q67A1DDBjvKCU
Content-Disposition: form-data; name="file"; filename="user.svg"
Content-Type: image/svg+xml
------WebKitFormBoundaryRl1Q67A1DDBjvKCU--
但是$_FILES
变量在PHP端是空的,出了什么问题?
答案 0 :(得分:1)
删除此行:
request.setRequestHeader("Content-Type", "multipart/form-data");
原因用粗体强调。
FormData对象允许您编译一组要使用XMLHttpRequest发送的键/值对。它主要用于发送 表单数据,但可以独立于表单使用 传输密钥数据。 传输的数据格式相同 表单的submit()方法将用于发送数据如果表单的 编码类型设置为multipart / form-data 。