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;
}
}
}
Все мои загрузки файлов работают отлично. Но иногда некоторые из моих картинок ломались после загрузки с сервера. Я пробовал с куском и без куска. Без метода чанка эти изображения загружаются правильно, но при чанке эти файлы ломаются. Я не знаю почему. Я перепробовал много вариантов, и ни один из них не работает.
Пожалуйста, помогите мне. Мне действительно нужна загрузка чанка. Потому что мне нужно загружать большие файлы.