Laravel 5.8 мультизагрузочных входов - PullRequest
0 голосов
/ 10 июля 2019

Я хочу иметь возможность загружать несколько (динамических) файлов (pdf).

Итак, у меня есть следующий макет:

https://i.imgur.com/TLk3dvv.png

Как видите, форма имеет 4 поля ввода для файлов, но также имеет 2 текстовых поля и для каждой строки загрузки файла имеет флажок.«Поток» следующий:

  1. Добавьте заголовок и год
  2. Проверьте классы (Initiatie, Recreatie, Toersime и Sport), которые вы хотите включить (и загрузите PDF для)
  3. Загрузить 1 файл PDF на класс.

Файлы представляют собой файлы PDF (1 на класс).Я попробовал следующий код в PHP для загрузки файлов, но я могу загружать только один, иногда 2 файла одновременно, в зависимости от их размера.

public function postGapersritAddResults(Request $request): RedirectResponse
{
    // Handle upload
    $path = 'documents/gapersrit/'.$request->get('year').'/results';

    foreach (['initiatie', 'recreatie', 'toerisme', 'sport'] as $item) {
        if ($request->hasFile('file_'.$item)) {
            $request->file('file_'.$item)->storeAs($path, $item.'.'.$request->file('file_'.$item)->getClientOriginalExtension(), 'webdav');
        }
    }

    // Handle database
    $result = new SiteGapersritResults();
    $result->title = $request->get('title');
    $result->year = $request->get('year');
    $result->initiatie =  filter_var($request->get('active_initiatie'), FILTER_VALIDATE_BOOLEAN);
    $result->recreatie =  filter_var($request->get('active_recreatie'), FILTER_VALIDATE_BOOLEAN);
    $result->toerisme =  filter_var($request->get('active_toerisme'), FILTER_VALIDATE_BOOLEAN);
    $result->sport =  filter_var($request->get('active_sport'), FILTER_VALIDATE_BOOLEAN);
    $result->save();

    toastr()->success('Saved the results for year '.$result->year.'.', 'Success', ['timeOut' => 5000]);
    return redirect()->to('admin/gapersrit/results');
}

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

Редактировать Ограничение размеров загрузки в php.ini и моей конфигурации Nginx составляет 100M.

Редактировать 2 Я получаю следующую ошибку в моем текущем коде:

curl_exec(): CURLOPT_INFILE resource has gone away, resetting to default

full trace: https://pastebin.com/rqUeEhGa

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Как вы сказали, ошибка curl_exec(): CURLOPT_INFILE resource has gone away, resetting to default

Размещенный вами фрагмент кода не содержит ничего, связанного с curl, проблема заключается в диске "webdav" в функции saveAs.

Глядя на след, кажется, что есть проблема в пакете League\Flysystem\WebDAV\, возможно

https://github.com/thephpleague/flysystem-webdav/issues/49 или
https://github.com/thephpleague/flysystem-webdav/issues/50

0 голосов
/ 10 июля 2019

Это может быть связано с тем, что размер загружаемого файла ограничен конфигурацией php.ini вашего сервера.

Если у вас есть доступ к файлу или настройкам php, попробуйте изменить эти значения:

upload_max_filesize = 20M
post_max_size = 20M

Редактировать см. Также https://stackoverflow.com/a/23686617/7584725

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