Dropzone несколько загрузок файлов загружает 2 файла одновременно - PullRequest
0 голосов
/ 27 января 2020

У меня есть следующий код

HTML

<form action="{{ route('documents.store') }}" method="POST" class="kt-form kt-form--label-right">
    @csrf
    <div class="kt-portlet__body">
        <div class="form-group">
            <div class="dropzone dropzone-default dropzone-success" id="documents_upload" style="padding: 0;">
                <div class="dropzone-msg dz-message needsclick">
                    <h3 class="dropzone-msg-title">Drop files here</h3>
                </div>
            </div>
        </div>
    </div>
</form>

Javascript

<script type="text/javascript">
    $(document).ready(function() {
        $('#documents_upload').dropzone({
            url: "{{ route('documents.store') }}", // Set the url for your upload script location
            paramName: "documents", // The name that will be used to transfer the file
            maxFiles: 50,
            maxFilesize: 4, // MB
            addRemoveLinks: true,
            acceptedFiles: "application/msword, application/vnd.ms-excel, application/pdf, image/*, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, image/*",
            uploadMultiple: true,
            headers: {
                'X-CSRF-TOKEN': "{{ csrf_token() }}"
            },
            queuecomplete: function() {
                // notify about successful upload

                // window.location.replace("{{ route('client.documents.index') }}");
            }
        });
    });
</script>

Проблема

Похоже, что это загружает документы порциями, по 2 за раз. Поэтому, если я хочу загрузить 8 файлов, он делает 4 запроса, каждый из которых содержит 2 файла. Я хочу загрузить все сразу, есть ли простой способ сделать это? Этот метод вызывает много проблем, потому что пользователь может загрузить большое количество документов, и когда половина из них будет готова, он может оставить / обновить sh страницу и т. Д. c. и ему придется искать, какие документы были загружены, а какие нет.

1 Ответ

0 голосов
/ 27 января 2020

Вы должны указать в dropzone выполнить параллельную загрузку в параметрах вашей dropzone по количеству, которое вы хотите.

<script type="text/javascript">
$(document).ready(function() {
    $('#documents_upload').dropzone({
        url: "{{ route('documents.store') }}", // Set the url for your upload script location
        paramName: "documents", // The name that will be used to transfer the file
        maxFiles: 50,
        maxFilesize: 4, // MB
        addRemoveLinks: true,
        acceptedFiles: "application/msword, application/vnd.ms-excel, application/pdf, image/*, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, image/*",
        parallelUploads:10,
        uploadMultiple: true,
        headers: {
            'X-CSRF-TOKEN': "{{ csrf_token() }}"
        },
        queuecomplete: function() {
            // notify about successful upload

            // window.location.replace("{{ route('client.documents.index') }}");
        }
    });
});

Дайте мне знать, если это сработало !!

...