jQuery File Upload के संबंध में, progress
ईवेंट है जो data
ऑब्जेक्ट को वापस भेजता है, जैसा कि मैं इसे समझता हूं, प्रत्येक फ़ाइल के लिए प्रगति की रिपोर्ट करता है।यह पहचानने के लिए कि कौन सी फ़ाइल प्रगति के लिए है?
मैं add()
ईवेंट के माध्यम से अपने यूआई में फ़ाइल और प्रगति सलाखों को जोड़ रहा हूं, और मैं बाद में progress()
ईवेंट के अंदर अपने संबंधित प्रगति सलाखों को अपडेट करना चाहता हूं। मेरी समस्या यह है कि मैं उनसे कैसे मेल खा सकता हूं?
मुझे प्रत्येक फ़ाइल को एक अद्वितीय आईडी देने की आवश्यकता है ताकि मैं उन्हें जोड़ सकूं, लेकिन जहां तक मैं देख सकता हूं, कोई प्रदान नहीं किया जाता है। हमें यह कैसे करना चाहिए?
क्या प्रत्येक फ़ाइल ऑब्जेक्ट के लिए शायद कुछ जावास्क्रिप्ट हैशकोड है?
कुछ कोड:
$('#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);
}
});
मुझे लगता है कि मैं बहुत तरह $.data
का उपयोग करके प्रत्येक फाइल करने के लिए एक अद्वितीय ID संलग्न कर सकते हैं:
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
) है या नहीं।
लेकिन मैं प्रत्येक फ़ाइल के लिए मैन्युअल रूप से 'progress' घटना बाँध नहीं है ... कि सभी स्वचालित रूप से किया है। मैं प्रत्येक फ़ाइल के लिए एक अलग संदर्भ कैसे सेट करूं? कुछ कोड बीटीडब्ल्यू पोस्ट किया। – mpen
'fileupload' विजेट के लिए प्रलेखन/स्रोत कोड के माध्यम से देखकर इसमें' सिंगलफाइलउप्लोड्स 'नामक एक विकल्प है जो डिफ़ॉल्ट रूप से' सत्य 'पर सेट होता है। यह एक से अधिक फाइल करने में सक्षम है, लेकिन जब तक आप उस मान को 'झूठी' में नहीं बदलते हैं, तो आपको इसकी गारंटी दी जानी चाहिए कि आपके 'फाइल' सरणी में केवल 1 आइटम ही होगा। –
ओह .. मैंने नहीं देखा कि डिफ़ॉल्ट रूप से 'सत्य' था ... लेकिन मुझे यकीन नहीं है कि यह इस मुद्दे को कैसे संबोधित करता है? आप केवल $ $ .fileupload() 'को तुरंत चालू करते हैं और इसे * एक * प्रगति घटना को देखते हैं। '$ .proxy' के साथ आपको प्रत्येक फ़ाइल को एक अलग कॉलबैक में बांधना होगा। – mpen