J'ai eu le même problème, et le gars de Blueimp a dit " maxFileSize et acceptFileTypes ne sont supportés que par la version IU. "et a fourni un lien (cassé) pour intégrer les méthodes _validate et _hasError.
Donc sans savoir comment intégrer ces méthodes sans bousiller le script j'ai écrit cette petite fonction. Elle semble fonctionner pour moi.
Ajoutez simplement ceci
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();
}
},
au début des options .fileupload comme indiqué dans votre code ici
$(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,
// acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
// maxFileSize: 5000000,
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 + '%');
}
});
});
Vous remarquerez que j'ai également ajouté une fonction de taille de fichier, car elle ne fonctionnera également que dans la version IU.
Mis à jour pour dépasser le problème suggéré par @lopsided : Ajouté data.originalFiles[0]['type'].length
y data.originalFiles[0]['size'].length
dans les requêtes pour s'assurer qu'elles existent et ne sont pas vides avant de tester les erreurs. S'ils n'existent pas, aucune erreur ne sera affichée et le test d'erreur côté serveur sera suffisant.
0 votes
Bonjour, j'essaie d'implémenter ce code pour le téléchargement de fichiers mais j'obtiens l'erreur suivante : Erreur de téléchargement de fichier : Uploaded bytes exceed file size Pouvez-vous s'il vous plaît suggérer quelle est la cause ?
2 votes
@JayMaharjan Êtes-vous sûr que le maxFileSize est correctement configuré ?
1 votes
Après avoir effectué la configuration appropriée dans le php.ini, je suis maintenant en mesure de télécharger des fichiers volumineux. Merci pour votre aide :)
0 votes
Dans mon cas, le gif a été redimensionné et converti en png, et le filtre pour gif a échoué. Et bizarrement, ça a commencé à fonctionner tout seul dès que j'ai compris ce qui se passait, j'ai vérifié deux fois si j'avais fait quelque chose avec la bibliothèque mais rien, tout ce que j'avais mis était des logs de la console, que j'ai supprimé et ça fonctionne toujours. Je le poste pour que cela puisse aider quelqu'un.