Laravel Ошибка сброса соединения при попытке загрузить большой файл - PullRequest
0 голосов
/ 16 мая 2019

Через несколько дней, чтобы отследить, почему я получаю The connection was reset ошибку при создании формы загрузки на Laravel, я подумал, что проблема на сервере, и я изменил дополнительные параметры apache2, но ничего не изменилось.

Я создал простой PHPдля загрузки файла, как в приведенной ниже реализации, это работает!Теперь в чем проблема в моей форме загрузки в реализации Laravel, в которой я получаю эту ошибку или timeout?

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

Реализация Laravel:

форма:

<form action="{{route('lessons.store')}}" method="POST" enctype="multipart/form-data">
    {{ csrf_field() }}
    <div class="form-group">
        <div class="form-group">

        <div class="form-group">
            <label class="display-block">please choose file</label>
            <div class="media no-margin-top">
                <div class="media-body">
                    <input type="file" class="file-styled" name="file"
                           value="{{old('file')}}">
                </div>
            </div>
        </div>

        <div class="text-right">
             <button type="submit" class="btn btn-primary">Upload FILE
                    <i class="icon-arrow-left13 position-right"></i></button>
        </div>
</form>

контроллер:

public function store(RequestContents $request)
{
    ini_set('memory_limit', '256M');
    $uploadedFile = $request->file('file');

    dd($uploadedFile);
}

маршрут:

Route::group(['namespace' => 'Dashboard', 'middleware' => ['auth:web'], 'prefix' => 'panel'], function () {
    ...
    $this->resource('lessons', 'LessonsController');
    ...
});

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Из-за загрузки очень большого файла на сервер возникает много проблем, таких как ресурс сервера, занятый при загрузке сети. Я столкнулся с подобной проблемой при загрузке большого файла (размером более 30 ГБ).

Я использовал этот подход,

В передней части Я использовал Dropzone.js Resumable.js очень многообещающе. Вместо загрузки всего файла непосредственно на сервер, он будет загружаться небольшими порциями (10 МБ), а также управлять частями файла и другими вещами.

На стороне сервера в вашем случае Laravel мы использовали pionl / laravel-chunk-upload , который совместим с вышеупомянутыми обоими загрузчиками. Он будет управлять всеми видами управления файловыми чанками, последними чанками и сшиваниями для вас.

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

EDIT

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

Если вам нужна дополнительная помощь, не стесняйтесь спрашивать.

0 голосов
/ 16 мая 2019

Пожалуйста, попробуйте еще раз после удаления атрибута enctype = "multipart / form-data" из формы.

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