У меня проблема с загрузкой изображения с использованием Laravel - PullRequest
0 голосов
/ 05 апреля 2020

У меня проблема с загрузкой изображений. Но я уже использовал много раз один и тот же механизм, но сейчас проблема. Кто-нибудь может помочь мне найти решение?

enter image description hereenter image description here

enter image description here

Ответы [ 3 ]

0 голосов
/ 05 апреля 2020

Ошибка может быть вызвана многими причинами, такими как php config, et c. Я думаю, что код нуждается в небольшом рефакторинге, попробуйте использовать Laravel File Storage и Mutators . Взгляните также на Внедрения зависимостей .

Если вы используете Laravel 6 или 7 Способ загрузки файла будет следующим:

На ваш взгляд:

/* 
 * make sure that the form has the attribute:
 * enctype="multipart/form-data"
 * or else no file will be passed
 * */
<form action="action.php" enctype="multipart/form-data">....

В методе updateSetting вашего контроллера:

public function updateSetting(Request $request, Setting $settings)
{
    // do your validations and others

    $settings->update($request->all());
    // else: $settings->create($request->all());

    // * you could use eloquent's updateOrCreate() method, look for it in the documentation        

    // your redirect code...
}

И в вашей модели настроек добавьте мутатор, который обрабатывает настройки администратора lo go, а также загружает файл и удаление старого. (Вы также можете создать помощника для лога загрузки c)

public function setAdminLogoAttribute($value)
{
    // Add your delete old admin logo logic

    if (is_file($value)) {
        $fileName = time() . "_" . $value->getClientOriginalName();
        $path = $value->move(
            public_path('uploads'),
            $fileName
        ); // or create a handleImage() helper

        $this->attributes['admin_logo'] = $fileName;
    }
}

Если это не сработает, возможно, проблема в конфигурации, или, возможно, нет, вы можете попытаться дать нам больше информации как конкретно произошла ошибка

0 голосов
/ 05 апреля 2020

Я уже решил эту проблему, я просто изменил название.

        $ext= $file->getClientOriginalExtension();
        $file_name = time()."." . $ext;
0 голосов
/ 05 апреля 2020
Источник

Laravel Symphony возвращает размер файла 0, если размер файла больше, чем php .ini's upload_max_filesize.

Так что проверьте свой upload_max_filesize в файле php .ini. Файл upload_max_filesize может быть меньше файла, который вы пытаетесь загрузить.

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