Dropzone JS PHP - Chunking

У меня есть следующий конфиг dropzone в JS & PHP.

JS

Dropzone.autoDiscover = false;
    $('.dropzone').dropzone ({
        addRemoveLinks: true,
        dictRemoveFile: "Remove",
        url: "/invoices/fileupload",
        method: "post",
        timeout: 180000,
        maxFileSize: 500,
        chunking: true,
        forceChunking: true,
        chunkSize: 256000,
        retryChunks: true,
        retryChunksLimit: 3,
        parallelUploads: 1,
        uploadMultiple:false,
        headers: {
            'X-CSRF-Token': $("meta[name='csrf_token']").attr("content")
        },
        init: function() {
            this.on("sending", function(file, xhr, formData){
                formData.append("_token", $("meta[name='csrf_token']").attr("content"));
                $('#docupload').val(0);
            }),
            this.on("uploadprogress", function(file, progress) {
                console.log("File progress", progress);
            }),
            this.on("success", function(file, xhr){
                $('#dropzoneJs').append('<input type="hidden" name="files[]" value="'+file.xhr.response+'" id="'+file.xhr.response+'"/>');
                $('#docupload').val(1);

            }),
            this.on("removedfile", function(file, xhr){
                $('#'+file.xhr.response).remove();

            })
        }
    });

PHP

function fileupload(Request $request)
    {

        if($request->file('file')){
            $image = $request->file('file');
            $dztotalchunkcount = $request->Input('dztotalchunkcount');
            $dztotalchunkcount = $dztotalchunkcount - 1;

            if( !empty( $image )  && $dztotalchunkcount == $request->Input('dzchunkindex')){
                $ext   = strtolower( $image->getClientOriginalExtension() );
                $key   = CommonServices::generateUniqueKey( '6', 'tempimages', 'tempimgkey' );
                $fileName = $key . "." . $ext;
                $originalname = $image->getClientOriginalName();
                $location        = storage_path();
                $image->move( $location. '/' .'temp', $fileName );
                DB::table( 'tempimages' )->insert( array(
                    'tempimgkey' => $key,
                    'tempimgext' => $ext,
                    'originalname' => $originalname
                ) );
                return $key;
            }

        }
    }

Все мои загрузки файлов работают отлично. Но иногда некоторые из моих картинок ломались после загрузки с сервера. Я пробовал с куском и без куска. Без метода чанка эти изображения загружаются правильно, но при чанке эти файлы ломаются. Я не знаю почему. Я перепробовал много вариантов, и ни один из них не работает.

Пожалуйста, помогите мне. Мне действительно нужна загрузка чанка. Потому что мне нужно загружать большие файлы.

0 ответов

Другие вопросы по тегам