dima9595
@dima9595
Junior PHP

Ошибка загрузки файла в папку, как решить?

Доброго времени суток! То ли я туповат, то ли что...Делаю загрузку изображения в нужную папку, предварительно создавая её. Вот код:
if($request->hasFile('cover_news')){
				// Если мы загружаем обложку
				$storagePath = Storage::allDirectories($path);
				if(!$storagePath){
					// Если нету папки, то создаём её
					Storage::makeDirectory($path);
				}

				// Создаём название картинки для сохранения
				$imageCover = $addNews->id_news . 'cover.' . $request->cover_news->extension();

				// Загружаем картинку в папку
				$uploadCover = Image::make($request->cover_news)->save($path . '/id' . $addNews->id_news . '/' . $imageCover);
			}

Именно эта часть кода выводит следующую ошибку:
Can't write image data to path (/public/news/id1/1cover.png)

PS: Делал линк для папки storage.
PSS: Работаю на Windows, Open Server.

Помогите решить эту маленькую проблему.
  • Вопрос задан
  • 250 просмотров
Решения вопроса 2
@pantagruel964
File::makeDirectory($path, 0755, true, true)
Ответ написан
dima9595
@dima9595 Автор вопроса
Junior PHP
Решение проблемы: Прописать в переменную path путь без всяких хелперов.
$path = 'storage/news/cover/';
		$imageName = 'cover_' . md5($path . time());

		$this->validate($request, [
			'title_news' => 'required',
			'short_news' => 'required',
			'full_news' => 'required',
			'cover_news' => 'required|mimes:jpeg,jpg,png',
		]);

		$addNews = News::create([
			'author_news' => Auth::user()->id_users,
			'title_news' => $request->title_news,
			'short_news' => $request->short_news,
			'full_news' => $request->full_news,
			'cover_news' => $request->cover_news,
		]);

		if($addNews){
			if($request->hasFile('cover_news')){
				// Если мы загружаем обложку
				$storagePath = Storage::allDirectories($path);
				if(!$storagePath){
					// Если нету папки, то создаём её
//					File::makeDirectory($path, 0755, true, true);
					Storage::makeDirectory($path);
				}

				// Название изображения ('cover_' . md5($path . time()).jpg)
				$imageCover = $imageName . '.' . $request->cover_news->extension();

				// Загружаем картинку в папку
				$uploadCover = Image::make($request->cover_news)->save($path . $imageCover);
			}

			return redirect()->route('news.getNews', $addNews->id_news)->with('successMessages', 'Вы успешно добавили новость!');
		}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы