एक ही समस्या थी, और ब्लिंप वाले आदमी का कहना है कि " maxFileSize और acceptFileTypes केवल UI संस्करण द्वारा समर्थित हैं " और _validate और _hasError विधियों को शामिल करने के लिए (टूटा हुआ) लिंक प्रदान किया है।
इसलिए बिना यह जाने कि स्क्रिप्ट को गड़बड़ाने के बिना उन तरीकों को कैसे शामिल किया जाए, मैंने यह छोटा फ़ंक्शन लिखा था। ऐसा लगता है यह मेरे लिए काम का होगा।
बस इसे जोड़ें
add: function(e, data) {
var uploadErrors = [];
var acceptFileTypes = /^image\/(gif|jpe?g|png)$/i;
if(data.originalFiles[0]['type'].length && !acceptFileTypes.test(data.originalFiles[0]['type'])) {
uploadErrors.push('Not an accepted file type');
}
if(data.originalFiles[0]['size'].length && data.originalFiles[0]['size'] > 5000000) {
uploadErrors.push('Filesize is too big');
}
if(uploadErrors.length > 0) {
alert(uploadErrors.join("\n"));
} else {
data.submit();
}
},
यहां आपके कोड में दिखाए गए अनुसार .fileupload विकल्प के शुरू में
$(document).ready(function () {
'use strict';
$('#fileupload').fileupload({
add: function(e, data) {
var uploadErrors = [];
var acceptFileTypes = /^image\/(gif|jpe?g|png)$/i;
if(data.originalFiles[0]['type'].length && !acceptFileTypes.test(data.originalFiles[0]['type'])) {
uploadErrors.push('Not an accepted file type');
}
if(data.originalFiles[0]['size'].length && data.originalFiles[0]['size'] > 5000000) {
uploadErrors.push('Filesize is too big');
}
if(uploadErrors.length > 0) {
alert(uploadErrors.join("\n"));
} else {
data.submit();
}
},
dataType: 'json',
autoUpload: false,
done: function (e, data) {
$.each(data.result.files, function (index, file) {
$('<p style="color: green;">' + file.name + '<i class="elusive-ok" style="padding-left:10px;"/> - Type: ' + file.type + ' - Size: ' + file.size + ' byte</p>')
.appendTo('#div_files');
});
},
fail: function (e, data) {
$.each(data.messages, function (index, error) {
$('<p style="color: red;">Upload file error: ' + error + '<i class="elusive-remove" style="padding-left:10px;"/></p>')
.appendTo('#div_files');
});
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .bar').css('width', progress + '%');
}
});
});
आपको लगता है कि मैंने वहाँ एक filesize फ़ंक्शन जोड़ा है क्योंकि यह भी केवल UI संस्करण में काम करेगा।
@Lopsered द्वारा सुझाए गए पिछले अंक प्राप्त करने के लिए अपडेट किया गया: जोड़े गए data.originalFiles[0]['type'].length
और data.originalFiles[0]['size'].length
प्रश्नों में यह सुनिश्चित करने के लिए कि वे मौजूद हैं और त्रुटियों के लिए परीक्षण से पहले खाली नहीं हैं। यदि वे मौजूद नहीं हैं, तो कोई त्रुटि नहीं दिखाई जाएगी और यह केवल आपके सर्वर साइड त्रुटि परीक्षण पर निर्भर करेगा।