jQuery File Uploadに関しては、私が理解しているように、各ファイルの進行状況を報告するオブジェクトprogress
を返すイベントがあります。data
イベントを介してファイルと進行状況バーを UI に追加しています。add()
後でイベント内のそれぞれの進行状況バーを更新したいと考えていprogress()
ます。私が抱えている問題は、それらをどのように一致させるかです。
各ファイルに一意の ID を付けてペアリングできるようにする必要がありますが、私が確認した限りでは提供されていません。これをどのように行うべきですか?
おそらく、各 File オブジェクトに JavaScript ハッシュコードがいくつかありますか?
いくつかのコード:
$('#fileupload').fileupload({
url: 'api/combox_upload.php',
dataType: 'json',
dropZone: $dropZone,
done: function (e, data) {
$.each(data.result, function(index, file) {
// indicate completeness
});
},
add: function(e, data) {
$.each(data.files, function(index, file) {
console.log(file);
$file_uploads.append($('<li>').text(file.name));
});
data.submit(); // start upload immediately
},
progress: function(e, data) {
console.log(data);
}
});
次のように利用することで、各ファイルに一意の ID を付けることができると思います$.data
。
var fileId = 0;
$('#fileupload').fileupload({
url: 'api/combox_upload.php',
dataType: 'json',
dropZone: $dropZone,
done: function (e, data) {
$.each(data.result, function(index, file) {
// indicate completeness
});
},
add: function(e, data) {
$.each(data.files, function(index, file) {
//console.log(file);
console.log(filename, fileId);
$.data(file, 'id', fileId++);
$file_uploads.append($('<li>').text(file.name));
});
data.submit(); // start upload immediately
},
progress: function(e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$.each(data.files, function(index, file) {
console.log($.data(file,'id'), file.name, progress);
});
//console.log(data);
}
});
私が今混乱している部分は、進行状況イベントでは、単一のファイルを提供するだけでなく、1つのファイルを保持する配列を提供することです...それが常にあることが保証されているかどうかはわかりませんそこに正確に1つのファイル(data.files
)があるかどうか。