2016-10-14 2 views
0

Я попытался установить ограничение на загрузку файлов только одному. Я пробовал все предложения из предыдущих вопросов here, но ничего не работало для меня. Каждый раз, когда я мог загружать несколько файлов и сколько угодно.Dropzone - максимальные файлы не работают

Это была одна из моих попыток:

var token = "{{ csrf_token() }}"; 
Dropzone.autoDiscover = false; 
var myDropzone = new Dropzone("div#dropzoneFileUpload", { 
    url: "/admin/upload", 
    params: { 
     _token: token 
     } 
}); 
Dropzone.options.myAwesomeDropzone = { 
    paramName: "file", // The name that will be used to transfer the file 
    maxFilesize: 2, // MB 
    addRemoveLinks: true, 
    maxFiles: 1, 
    init: function() { 
     this.on("maxfilesexceeded", function() { 
     if (this.files[1]!=null){ 
      this.removeFile(this.files[0]); 
     } 
     }); 
    }, 
    accept: function(file, done) { 

    } 
    }; 

И это, как я называю сценарии:

<script src="{{ asset('js/dropzone/dropzone.js') }}"></script> 
<script src="{{ asset('js/image-upload.js') }}"></script> 

ответ

1

Вы распределяете конфигурацию Dropzone в двух различных методов. И только первый использует тот, который содержит параметр url, второй, который содержит параметр maxFiles, игнорируется.

Вы должны либо включать всю конфигурацию внутри первого метода, который создает Dropzone программно, как это:

Dropzone.autoDiscover = false; 
var myDropzone = new Dropzone("div#dropzoneFileUpload", { 
    url: "/admin/upload", 
    params: { 
     _token: token 
    }, 
    paramName: "file", // The name that will be used to transfer the file 
    maxFilesize: 2, // MB 
    addRemoveLinks: true, 
    maxFiles: 1, 
    init: function() { 
     this.on("maxfilesexceeded", function() { 
     if (this.files[1]!=null){ 
      this.removeFile(this.files[0]); 
     } 
     }); 
    }, 
    accept: function(file, done) { 

    } 
}); 

Или со вторым методом, который использует Dropzone автообнаружения функции, если ваш Dropzone элемент имеет идентификатор #dropzoneFileUpload сделать это примерно так:

Dropzone.options.dropzoneFileUpload = { 
    url: "/admin/upload", 
    params: { 
     _token: token 
    }, 
    paramName: "file", // The name that will be used to transfer the file 
    maxFilesize: 2, // MB 
    addRemoveLinks: true, 
    maxFiles: 1, 
    init: function() { 
     this.on("maxfilesexceeded", function() { 
     if (this.files[1]!=null){ 
      this.removeFile(this.files[0]); 
     } 
     }); 
    }, 
    accept: function(file, done) { 

    } 
};