XMLHttpRequest を使用してファイルをアップロードしています。イベントの完了時に、ファイル名を取得したいと思います-サーバー (AWS S3) はその情報で応答を返しません。このファイル名にアクセスする適切な方法は何ですか? XMLHttpRequest を xhr.filename = 'abc.jpg' でオーバーロードすると、イベントでアクセスできますが、少し汚れているように見えます。リクエストヘッダーを設定しようとしましたが、返されたイベントでそれにアクセスする方法がわかりません。より良い方法はありますか (はい、スコープなどを再フォーマットできますが、返されたイベントでファイル名にアクセスすることに特に関心があります。
function upload() {
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.setRequestHeader("X-File-Name", file.name); // how to access this?
xhr.filename = file.name; // works but seems a bit unclean imo
scope.progressVisible = true;
xhr.send(data);
}, function(err) {
console.log(err);
});
};
function uploadComplete(evt) {
// I want the file name here as part of this function's parameters (i.e. evt - doesn't seem to return anymore params than that)
}