使用 XMLHttpRequest Level 2 我想上传一个文件。我正在使用 jQuery,所以我想优先使用 jQuery。
所以我写了以下代码(咖啡脚本,但任何熟悉 javascript 的人都应该很容易阅读)
fileToUpload = event.currentTarget.files[0]
data = new FormData()
data.append("uploadedfile", fileToUpload)
$.ajax({
type: 'POST',
url: url,
data: data,
contentType: false,
processData: false,
mimeType: 'multipart/form-data',
})
使用该代码,在服务器端使用 PHP 我做一个`
使用 Firefox 17.0.1 我什么也得不到。$_FILES 为空,使用 Chromium 22.0 我得到了上传的文件(格式很奇怪,但至少有一些)
Array
(
[uploadedfile] => Array
(
[name] => filename.txt
[type] => application/octet-stream
[tmp_name] => /tmp/phpWwenhc
[error] => 0
[size] => 189
)
)
有谁知道这是否是 Firefox 的错误?有解决方法吗?难道我做错了什么?我搜索了一个类似的问题,但我发现的所有建议答案都不适用于我(不适用于 Firefox,没有使用 xhr 2 级等)
提前致谢。
请:我不关心 IE 或旧版本。iframe 解决方案和插件都不是。只是 XmlHttpRequest 级别 2。对于那些没有听说过的人,请查看: https ://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/FormData/Using_FormData_Objects