Restriction des types de fichiers dans la démo de téléchargement de fichiers JQuery
- restriction des types de fichiers à télécharger .zip et .rar
- restriction de la taille des fichiers
- suppression de la liste des fichiers Téléchargés (JQuery file upload plugin affiche la liste des fichiers téléchargés)
Aide appréciée !!
5 réponses
Vous avez probablement une pléthore de solutions maintenant, cependant je voulais utiliser le plugin de base pour le uploader jquery, i.e. sans aucun autre script.. pour une raison quelconque, les options maxFileSize/fileTypes ne fonctionnaient pas - mais c'est surtout dû à mon manque de lecture de la documentation!
de toute façon pour moi, c'était aussi rapide que la façon suivante:
add: function (e, data) {
var goUpload = true;
var uploadFile = data.files[0];
if (!(/\.(gif|jpg|jpeg|tiff|png)$/i).test(uploadFile.name)) {
common.notifyError('You must select an image file only');
goUpload = false;
}
if (uploadFile.size > 2000000) { // 2mb
common.notifyError('Please upload a smaller image, max size is 2 MB');
goUpload = false;
}
if (goUpload == true) {
data.submit();
}
},
donc en utilisant simplement L'option ADD pour n'autoriser que les types d'image dans le regex, et en vérifiant (dans mon cas) la taille du fichier est d'un maximum de 2 mo.
plutôt basique, et encore une fois je suis sûr que les options de maxFileSize fonctionnent, juste je n'inclus que le script de plugin de base jquery.fileupload.js
EDIT J'aurais ajouté dans mon cas, j'envoie juste un fichier (une image de profil) donc les données.fichiers[0].. vous pouvez itérer à travers la collection de fichiers bien sûr.
En jquery.fileupload-ui.js modifier cette partie:
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
options: {
// The maximum allowed file size:
maxFileSize: 100000000,
// The minimum allowed file size:
minFileSize: undefined,
// The regular expression for allowed file types, matches
// against either file type or file name:
acceptFileTypes: /(zip)|(rar)$/i,
----------------------------------------------------------------
Pour effacer la liste des fichiers téléchargés - Enlever le $.getJSON appel de main.js si vous n'avez pas besoin de cette fonctionnalité.
selon la documentation officielle;
$('#file_upload').fileUploadUIX({
maxFileSize: 5000000, // Maximum File Size in Bytes - 5 MB
minFileSize: 100000, // Minimum File Size in Bytes - 100 KB
acceptFileTypes: /(zip)|(rar)$/i // Allowed File Types
});
une autre façon de faire est la suivante.
$('#upload').fileupload({
change: function (e, data) {
if (!(/\.(jpg|jpeg|png|pdf)$/i).test(data.files[0].name)) {
alert('Not Allowed');
return false;
}
}
});
essayez de regarder à cette ligne :
process: [
/*
{
action: 'load',
fileTypes: /^image\/(gif|jpeg|png)$/,
maxFileSize: 20000000 // 20MB
},
{
action: 'resize',
maxWidth: 1920,
maxHeight: 1200,
minWidth: 800,
minHeight: 600
},
en jquery.fileupload-fp.js