var data = new FormData(document.getElementById("uploadform"));
$.each($('#file')[0].files, function(i, file) {
data.append('file-'+i, file, this.name);
});
该代码适用于 Chromium 26,但不适用于 Firefox 21。我在每个循环中放置了一个警报,“alert(this.name)”,它在 Chrome 中显示文件名,但在 Firefox 中没有任何内容......所以这显然是它所有的地方在 Firefox 中。
我也在 Firefox 24 上试过——同样的问题。我知道这段代码曾经在 Firefox 上工作——一个比 21 更旧的版本。
这种细微的变化,只是省略了几个参数,给了我相同的结果:
var data = new FormData();
$.each($('#file')[0].files, function(i, file) {
data.append('file-'+i, file);
});
我只是不知道发生了什么,因为 Mozilla 文档表明这是受支持的并且我做得对。
如果有人好奇,这是代码的 ajax 调用部分(但这不是问题——根据我的警报检查,它在上面的代码中陷入困境):
$.ajax({
url: 'upload.php',
data: data,
contentType: false,
processData: false,
cache: false,
type: 'POST',
success: function(data){ }
任何人都有任何类似的问题,或者有任何暗示甚至可以在哪里看?