XHR2でファイルをサーバーに投稿する際に問題が発生しました。次の問題があります。
2つのパラメータとFILEを使用してURLへのPOSTを実行したいと思います。POSTリクエストをバックエンドでinput=fileを使用したように動作させたいのですが。
目標は次のようなものです。
function sendForm(FILE_URI, GO_TO) {
var formData = new FormData();
formData.append('param1', "param1");
formData.append('param2', "Param2");
// Now we add the file
formData.append("file", FILE_URI);
var xhr = new XMLHttpRequest();
xhr.open('POST', GO_TO, true);
xhr.onload = function(e) { ... };
xhr.send(formData);
return false; // Prevent page from submitting.
}
このコードは機能せず、サーバーは「file」パラメーターを$ _FILEとして認識しません(私はPHPを使用しています)。フォームにはファイルアップロード要素はありません。URIを使用した非表示の入力になります。
<input type="hidden" id="file_item" value="/path/to/image" />
これに関するガイダンスはありますか?
アップデート
INPUTファイルの編集が悪いことを理解しています-私はそれをしたくありません。FORMなしでファイルをサーバーにPOSTする他の方法を見つけたいです。XHR2を使用してフォームなしでBLOBをアップロードできますが、XHR2を使用してParams + File(またはBlob)を作成する方法を探しています。