0
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でも試しましたが、同じ問題です。このコードは、21 より古いバージョンの Firefox で動作していたことを知っています。

いくつかのパラメーターを除外するだけで、このわずかな変更により、同じ結果が得られます。

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){ }

誰もが同様の問題を抱えていますか、またはどこを見ればよいかわかりませんか?

4

1 に答える 1