Restriction des types de fichiers dans la démo de téléchargement de fichiers JQuery

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.

65
répondu Dav.id 2013-01-21 12:03:16

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é.

6
répondu Potheek 2012-11-02 06:36:13

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
});
3
répondu blasteralfred Ψ 2012-09-06 15:45:42

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;
                }
        } 
 });
0
répondu shana 2018-08-16 08:54:16

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

-2
répondu Satya 2012-09-06 15:45:40