geri anladığım kadarıyla, her dosya için ilerleme raporları bir data
nesneyi geçen bir progress
olay yoktur.Hangi dosya ilerleme durumunun nasıl belirlenir? <a href="https://github.com/blueimp/jQuery-File-Upload/wiki/Options" rel="noreferrer">jQuery File Upload</a> İlişkin
Dosya ve ilerleme çubuklarını kullanıcı arayüzüne add()
olayı üzerinden ekliyorum ve daha sonra ilgili ilerleme çubuklarını progress()
olayında güncellemek istiyorum. Sorun şu ki, onları nasıl eşleştireceğim?
Ben benzersiz bir kimlik yüzden onları eşleştirmek her dosyayı vermek gerekir, ama bir bildiğim kadarıyla gördüğünüz gibi sağlanmaz. Bunu nasıl yapmalıyız?
belki her File nesnesi için bazı JavaScript karma kodudur var mı?
Bazı kod:
$('#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);
}
});
bence ben şöyle $.data
kullanarak her dosya için benzersiz bir kimlik ekleyebilirsiniz:
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);
}
});
aklım karıştı parçası şu andaki ilerleme olayında sadece tek bir dosya vermemesi, size 1 dosya tutan bir dizi vermesidir ... Eğer garanti edilirse emin değilim her zaman tam olarak 1 dosya var (data.files
) veya değil.
Ama her dosya için elle 'progress' olayı bağlamaz ... hepsi otomatik olarak yapılır bu. Her dosya için farklı bir bağlam nasıl ayarlayabilirim? Bazı kod BTW gönderildi. – mpen
'fileupload' widget'ının belgelerine/kaynak koduna bakarak, 'true' olarak ayarlanmış' singleFileUploads' adlı bir seçeneği vardır. Birden fazla dosya yapabilir, ancak bu değeri 'false 'olarak değiştirmediğiniz sürece' files' dizinizde yalnızca 1 öğe bulunacağından emin olmalısınız. –
Oh .. Varsayılan olarak "true" olduğunu fark etmedim ... ama sorunun nasıl ele alındığından emin değilim? Sadece $ .fileupload() 'ı bir kez uygularsınız ve * bir * ilerleme olayını bağımsız olarak verirsiniz. $ .proxy ile her dosyayı farklı bir geri aramaya bağlamak zorunda kalacaksınız. – mpen