PHP Laravel 6 이미지 업로드

4607 단어 PHPLaravel6

전제 조건



이미지 파일을 저장할 위치 = storage/app/public데이터베이스에는 ファイル名 만 저장됩니다.
파일 이름에는 ランダムな名前가 자동으로 할당됩니다.

양식 만들기



양식 태그 작성



form 태그에 enctype='multipart/form-data'를 쓰지 않으면 오류가 발생합니다.
이것을 기술하는 것으로 복수류(jpeg, png등)의 데이터 형식을 취급하는 것으로 할 수 있게 됩니다.

create.blade.php
<form method="POST" action="{{ route('recommends.store') }}" enctype='multipart/form-data'>
@csrf

</form>


컨트롤러 설정



img가 없는 경우에 $path = $request->file('img')->store('public/img'); 로 에러를 토하기 위해 if문으로 분기시켰습니다.

recommendMovies/app/Http/Controllers/RecommendMovieController.php
public function store(Request $request)
    {
      if ($request->img === null) {
        RecommendMovie::create([
          'name' => $request->name,
          'description' => $request->description,
          'impression' => $request->impression,
        ]);
      }else {
        $path = $request->file('img')->store('public/img');
        RecommendMovie::create([
          'name' => $request->name,
          'description' => $request->description,
          'impression' => $request->impression,
          'img' => basename($path)
        ]);
      }
      return redirect('/recommends')->with('message', '作成しました');
    }

view 설정



심볼릭 링크를 사용합니다.
php artisan storage:link

storage\img가 생성되고 이 안에 업로드한 이미지가 저장됩니다.


아래의 설명으로 브라우저에 표시시킬 수 있습니다.

recommendMovies/app/Http/Controllers/index.php
<img src="{{ asset('/storage/img/'.$recommend->img) }}">

좋은 웹페이지 즐겨찾기