Как исправить «Не могу записать данные изображения в путь» Laravel 6.X - PullRequest
1 голос
/ 16 октября 2019

Я создал класс Media для загрузки изображений для хранения в общедоступном пути к хранилищу Laravel, но метод сохранения Intervention не работает

Я пытался изменить разрешение каталогов, но ничего не сделал. Я также пытался использовать функцию public_path () для моих путей или getRealPath () к файлу. Я также проверил много других подобных вопросов, связанных с этой проблемой, и в конце я думаю, что это, вероятно, проблема с Laravel v.6

Это функция для загрузки файлов:

/**
 * @param $entity
 * @param $file
 * @return string
 */
public function processFile($entity, $file)
{
    if (!$file->isValid()) {
        return false;
    }
    $imgName = preg_replace('@[a-z0-9]i@', '_', md5(uniqid(time())) . time());
    $fileName = $imgName . '.' . $file->extension();

    $pathSmall = "image/$entity/small/";
    $pathLarge = "image/$entity/large/";


    if (!Storage::exists($pathSmall)) {
        Storage::makeDirectory($pathSmall, 7777, true, true);
    }
    if (!Storage::exists($pathLarge)) {
        Storage::makeDirectory($pathLarge, 7777, true, true);
    }

    Image::make($file)->resize(310, 170)->save($pathSmall.$fileName);
    Image::make($file)->resize(1920, 1080)->save($pathLarge.$fileName);

    return $fileName;
}

Я попытался отладить весь код, и проблема заключается в способе сохранения, образ создается и изменяется правильно, но сохранение не работает:

Intervention\Image\Exception\NotWritableException: Can't write image data to path (image/post/small/c2839f74e99f1c7f7c798171cf8ecf7b1571167248.jpeg) in file /home/vagrant/code/api-blog/vendor/intervention/image/src/Intervention/Image/Image.php on line 150
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...