2017-01-02 9 views
-1

私のhtmlコード:javascriptを使ってXMLHttpRequestでファイルを送信するには?

<input type="file" id="attachFileId"" name="contactUs_attach" /> 

マイジャバスクリプトコード:

var userfile=document.getElementById('attachFileId').files[0]; 
var attchment = new FormData(); 
attchment.append("userfile",userfile); 
var xhr = new XMLHttpRequest(); 
xhr.open('POST','/cgi-bin/upload.cgi'); 
xhr.setRequestHeader('Content-Type',"multipart/form-data"); 
xhr.onload = function() { 
    if(xhr.responseText==="y") { 
    alert("sucess!"); 
    } 
}; 
xhr.send(attchment); 

上記のコードは、私のために動作しません。誰かがこの問題を解決するのに役立つことができますか?

+0

どこから呼びますか?フルコードコンテキストを表示する。イベントハンドラを使わずに実行すると、ユーザがファイルを選択する前に実行されます。どのようなエラーがスローされますか?事実上無意味な技術的問題の陳述書である「動作しない」よりも詳細が必要です。また、[mcve]を通過するのに数分かかる – charlietfl

+0

私は何を見ていますか?あなたはファイルをアップロードしていますか? – Prajwal

+0

ようこそスタックオーバーフローへ。 @charlietflが正しいです、コンテキストを提供し、あなたが試して修正しようとしたことを示すことによって私たちを助ける必要があります。 – Mikkel

答えて

0

この行を削除します。

xhr.setRequestHeader('Content-Type',"multipart/form-data"); 

マルチパートフォームデータのヘッダは、コンテンツに境界マーカーを指定する必要があり、そしてあなたが境界線を生成していないので、それを行うことはできませんあなた自身(FormDataXHRがそうしています)。

あなた自身でヘッダを指定しないと、FormDataオブジェクトに基づいてXHRによって生成されます。

関連する問題