XMLHttpRequestレベル2を使用してファイルをアップロードしたい。私はjQueryを使用しているので、jQueryを優先して使用したいと思います。
だから私は次のコードを書きました(coffescriptですが、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はnullです。Chromium22.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をご覧ください。