2017-02-25 5 views
0

ファイルのアップロードにこのhttps://www.html5rocks.com/en/tutorials/file/dndfiles/のようなHtml5 File APIを使用する方法のチュートリアルをいくつか見てきました。 私が欲しいのは、ブラウザからバックエンドにすべてのものを送ってそこで処理して実際にファイルをアップロードする方法のいくつかの指針です。これらのチュートリアルでは表示されていません。Html 5ファイルのアップロードとブラウザからバックエンドにファイルを送信する方法

バックエンド言語は関係ありません。

そして、私は外部のjsライブラリを使用したくないです。純粋なjavascriptだけです。

+0

質問は何ですか。 – guest271314

+0

[ファイルを非同期でアップロードするにはどうすればいいですか?](http://stackoverflow.com/questions/166221/how-can-i-upload-files-asynchronously) – guest271314

+0

@ guest271314、それは私の質問とは関係ありません。 – Kevin

答えて

0
document.getElementById('fileinput').addEventListener('change', function(){ 
var fd = new FormData(); 
    for(var i = 0; i<this.files.length; i++){ 
var file = this.files[i]; 
fd.append("upload_file"+i, file); 
} 
uploadFile(fd); 
} 

function uploadFile(fd){ 
var url = 'server/index.php'; 
var xhr = new XMLHttpRequest(); 

xhr.open("POST", url, true); 
xhr.onreadystatechange = function() { 
    if(xhr.readyState == 4 && xhr.status == 200) { 
     // Every thing ok, file uploaded 
     console.log(xhr.responseText); // handle response. 
    } 
}; 
xhr.send(fd); 
} 

次のHTMLを使用してください。

<input type="file" id="fileinput" multiple="multiple" accept="image/*" /> 
+0

複数のファイルがある場合はどうすればよいですか? – Kevin

+0

更新された回答を参照してください。 – Matt

+1

@Dhanesh各 'File'オブジェクトに対して別々の' POST'を行う必要はありません。なぜあなたは各 'FormData'インスタンスで同じキー名を設定しますか? – guest271314

関連する問題