अब तक, मेरा अपलोड कार्यान्वयन अपेक्षाकृत सुचारु रूप से चल रहा है, एक नंगे मुद्दे को छोड़कर।अपलोड करें + jQuery यूआई
मेरे पास एक jquery-ui संवाद मोडल विंडो में मेरा अपलोडिफ़ ब्राउज़ प्रॉम्प्ट है। फ़ाइलें ठीक से अपलोड हो जाती हैं लेकिन प्रत्येक फ़ाइल आइटम के लिए चुनी गई, दो समान कतार आइटम (एक ही आईडी) दिखाई देते हैं।
इन कतारों में से केवल एक आइटम वास्तव में प्रगति पट्टी के साथ अपडेट किया गया है हालांकि दोनों को प्रतिशत अपडेट मिलते हैं।
जब फ़ाइल अपलोड केवल इन कतार वस्तुओं में से एक है (प्रगति पट्टी के साथ अपडेट किया गया है) हटा दिया जाता है।
मैं इसे jQuery ui को संवाद मोडल विंडो और डबल पंक्ति आइटम व्यवहार गायब हो गई के बाहर का परीक्षण किया।
हालांकि यदि संभव हो तो मैं अपलोडिफ़ प्रॉम्प्ट और कतार को एक मोडल संवाद विंडो में रखना पसंद करूंगा।
किसी भी संकेत के कारण jquery-ui मोडल विंडो में अपलोडिफ़ाई का उपयोग करने के कारण इस डबल कतार आइटम व्यवहार का कारण बनता है?
अद्यतन:
$("#Filedata").uploadify({
'scriptAccess': 'allways',
'uploader' :'<?php echo base_url();?>js/jquery.uploadify-v2.1.4/uploadify.allglyphs.swf',
'script': '<?php echo site_url();?>/upload/process_upload',
'cancelImg': '<?php echo base_url();?>js/jquery.uploadify-v2.1.4/cancel.png',
'folder' : '/',
'fileDataName' :'Filedata',
'buttonText' : 'Document...',
'width': '273',
'height': '51',
'wmode': 'transparent',
'auto' : true,
'multi' : false,
'fileExt' : '*.pdf;', 'fileDesc' :'Document',
'sizeLimit' : 10485760,
'simUploadLimit' : 1,
'queueSizeLimit' :'1',
'uploaderType' : 'flash',
'scriptData' : {'userdata':'<?php echo $userdata;?>','upload_token':'<?php echo $token['value'];?>'},
onProgress: function() {
//hide upload button
$("object#FiledataUploader").height(0);
},
//workaround for bug in jQuery UI dialog/upoadify (double progress bars)
onOpen : function(event,ID,fileObj) {
$('#FiledataQueue div.uploadifyQueueItem:first-child').hide();
},
onError: function(a, b, c, d) {
if (d.status == 404)
alert('Could not find upload script. Use a path relative to: ' + '<?= getcwd() ?>');
else if (d.type === "HTTP")
alert('error ' + d.type + ": " + d.info);
else if (d.type === "File Size")
alert(c.name + ' ' + d.type + ' Limit: ' + Math.round(d.sizeLimit/1024) + 'KB');
else
alert('error ' + d.type + ": " + d.info);
},
onComplete : function (event, queueID, fileObj, response, data) {
var r = JSON.parse(response);
$('#token').val(r['token']);
$('#uploaded_filename').val(r['uploaded_filename']);
$('#filename_encryption').val(r['encryption']);
$('#FiledataQueue').html('Document <span class="bold" style="font-weight:bold;">'+ r['filename'] + '</span>');
},
onQueueFull: function(event, queueSizeLimit) {
// supress dialog that mentions the queue is full
return false;
}
});
HTML:
<form id="form-document" method="" action="">
<input type="file" name="Filedata" id="Filedata" size="20" />
<input type="hidden" name="response" id="response" value=""/>
<input type="hidden" name="upload_token" id="upload_token" value=""/>
<input type="hidden" name="uploaded_filename" id="uploaded_filename" value=""/>
<input type="hidden" name="filename_encryption" id="filename_encription" value=""/>
<input type="hidden" name="uploaded_extension" id="uploaded_extension" value=""/>
<input type="hidden" name="token" id="token" value="<?php echo $token['value'];?>"/>
</form>
अद्यतन 2:
jQuery यूआई संवाद:
dialog_data.dialog({
autoOpen: false,
height: 700,
width: 800,
modal: true,
bigframe: true,
buttons: {
'Save': function() {
$.ajax({
type: "GET",
url: "<?php echo site_url();?>/upload/finish",
dataType: 'html',
data: $('#form-document').serialize(),
success: function(){
oCache.iCacheLower = -1;
oTable.fnDraw();
dialog_data.dialog('close');
}
});
},
'Close': function() {
$(this).dialog('close');
$('.loading').hide();
}
},
open: function(){
$('.loading').hide();
$("object#FiledataUploader").height(30);
},
close: function() {
$('#uploaded_filename').val('');
$('#filename_encription').val('');
$('#FiledataQueue').html('');
}
});
को मैं के साथ इसे हल करने के लिए
बदलें वर्कअराउंड समाधान लेकिन मैं कामकाज से खुश नहीं हूं। मैं इस (शायद) बग पर अधिक जानकारी जानना चाहता हूं। – mojeime
कृपया अपना कोड? – ifaour
किसी और को समस्या में भाग लेने के मामले में आपको अपना कामकाज साझा करना चाहिए। – Jimmy