Laravel & quot; Не удается записать данные изображения в путь & quot; ошибка

В настоящее время я использую пакет Intervention Image в Laravel.

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

public function postUpdateLogo($id) {

if(Input::file())
{

$image = Input::file('logo');
$filename  = time() . '.' . $image->getClientOriginalExtension();

\Image::make($image->getRealPath())
->resize(300, 300)
->save('user/'. $id . '/' . $filename);
$user->image = $filename;
$user->save();
}
}

Но ошибка, которую я получаю при представлении:

NotWritableException в строке 143 Image.php: невозможно записать данные изображения в
путь (пользователь / 1 / 1439491280.png)

Любая помощь будет принята с благодарностью.

1

Решение

Я тоже сталкивался с этой проблемой, так как Стюард предположил, что вы можете написать в общую папку.

$filename  = time() . '.' . $image->getClientOriginalExtension();
$path = public_path("user/".$id."/".$filename);

\Image::make($image->getRealPath())->resize(300, 300)->save($path);

Во-вторых, мне удалось исправить мою проблему (Ubuntu, Apache, установка Laravel 5), сделав Apache владельцем этой общей папки, например. :

sudo chown -R www-data:www-data /home/youruser/www/dev.site.com/public/user

добавьте правильное разрешение папки:

~$ sudo chmod 755 -R user

Не может быть идеальным решением, но поможет вам.

Редактировать — возможный второй вариант:

Проверка текущего владельца группы вашей общедоступной папки, а затем добавление пользователя apache (www-data) в эту группу может быть вторым вариантом (надеюсь, гуру согласны):

sudo adduser www-data theownergroup
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]