我尝试使用AJAX或XMLHttpRequest上传Magento 2.2购物车页面上的文件,然后发送到我的控制器网址。这两个版本都适用于Chrome,但在Firefox中失败。
var fileToUpload = inputField.files[0];
var formData = new FormData();
formData.append('myVar', "something");
formData.append('myFile', fileToUpload);
var xhr = new XMLHttpRequest();
var url = "https://example.com/myurl/";
xhr.open("POST", url, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
console.log(xhr.status);
}
};
xhr.send(formData);
在Chrome中,我的服务器端代码收到:
$ _ POST
Array
(
[myVar] => something
)
$ _文件
Array
(
[myFile] => Array
(
[name] => myFileName.JPG
[type] => image/jpeg
[tmp_name] => /tmp/phpkcdORa
[error] => 0
[size] => 1745419
)
)
在Firefox中我得到了这个:
$ _ POST
Array
(
[myVar] => something
)
$ _文件
Array
(
[myFile] => Array
(
[name] => myFileName.JPG
[type] =>
[tmp_name] =>
[error] => 3
[size] => 0
)
)
为什么会这样,以及如何让它发挥作用?