Подтвердить что ты не робот

Ограничение типов файлов в JQuery Загрузка файла демо

Я использую демонстрацию загрузки файла JQuery для моего следующего проекта с помощью Codeigniter. Может ли кто-нибудь сказать мне, как мне достичь следующего:

  • Ограничение типов загружаемых файлов на .zip и .rar
  • Ограничение размера файла
  • Очистка списка загруженных файлов (плагин загрузки файлов JQuery отображает список уже загруженных файлов)

Помогите оценить!

4b9b3361

Ответ 1

у вас, вероятно, сейчас есть множество решений, однако я хотел использовать плагин BASIC для загрузчика jquery, то есть без каких-либо других скриптов. По какой-то причине параметры maxFileSize/fileTypes не работали - однако это в основном не вызывает сомнений к моему отсутствию чтения документации!

В любом случае, это было так же быстро, как сделать следующее:

    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();
        }
    },

Таким образом, просто используя параметр ADD, чтобы разрешать типы изображений в регулярном выражении и проверять (в моем случае) размер файла не более 2 мб.

Скорее всего, и снова я уверен, что параметры maxFileSize работают, просто я включаю только основной плагин script jquery.fileupload.js

ИЗМЕНИТЬ Я должен был добавить в моем случае, что я загружаю только один файл (образ профиля), поэтому, следовательно, data.files [0].. вы могли бы итерации через коллекцию файлов, конечно.

Ответ 2

В jquery.fileupload-ui.js отредактируйте эту часть:

   $.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,
        ----------------------------------------------------------------

Очистить список загруженных файлов. Удалите вызов $.getJSON из main.js, если вам не нужны эти функции.

Ответ 3

Согласно официальной документации;

$('#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
});

Ответ 4

попробуйте посмотреть на эту строку:

 process: [
            /*
                {
                    action: 'load',
                    fileTypes: /^image\/(gif|jpeg|png)$/,
                    maxFileSize: 20000000 // 20MB
                },
                {
                    action: 'resize',
                    maxWidth: 1920,
                    maxHeight: 1200,
                    minWidth: 800,
                    minHeight: 600
                },

в jquery.fileupload-fp.js