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){ }
任何人都有类似的问题,或者有什么问题可以看哪儿?
答案 0 :(得分:0)
浏览器的控制台是否有错误?检查网络(或网络)选项卡。
我也会在IE或Opera中测试,以确认它是一个特别的FF问题。
还尝试制作提醒
if (!window.FormData) {
alert('Doh!');
}