Поток больших файлов до 10 ГБ - PullRequest
0 голосов
/ 11 апреля 2019

Прежде всего, извините за мой английский.

Я пытаюсь загрузить большой файл с помощью laravel. Я также понимаю, что мне нужно передать этот файл в мое локальное хранилище. Я также использую blueimp / jquery-file-upload, который может создать чанки. Тем не менее, следует ли использовать чанки на стороне клиента, если я передаю файл на стороне сервера?

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

Все, что я пробовал, это стандартный плагин blueimp / jquery-file-upload Который выглядит как

// Initialize the jQuery File Upload widget:
    $('#fileupload').fileupload({
        // Uncomment the following to send cross-domain cookies:
        //xhrFields: {withCredentials: true},
        url: 'upload',
        //maxChunkSize: 10000000
    });

А контроллер Laravel выглядит как

$images = $request->file('files');
        foreach ($images as $file)
        {
            $extension  = $file->getClientOriginalExtension();
            $imageName = $file->getClientOriginalName();
            $disk = Storage::disk('local');
            $disk->put("$imageName.$extension", fopen($file, 'r+'));
        }

Когда я хочу получить файл чанка на стороне клиента, я устанавливаю значение maxChunkSize: 1024 *1024* 1024 *1024* 1024 *1024* 10

И изменить сторону сервера, как

$images = $request->file('files');
        foreach ($images as $file)
        {
            $file->store(
                'f/', 'local'
            );
        }

Это файлы сохранения, которые меньше, чем 100 МБ, если попытаться загрузить немного большие файлы, у меня ошибка - Слишком большая полезная нагрузка - эта ошибка имеет следующее сообщение в консоли отладки

POST Content-Length of 445883220 bytes exceeds the limit of 134217728 bytes in

Но почему? Разве я не использую куски? Я делаю, и это не работает должным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...