laravel5.5 이미지 업로드 방법

제목과 같다.
그림 파일을 업로드하여 응용 프로그램에 표시하고 싶습니다.
나는 초보자의 방식에 따라 노력했다.

하고 싶은 일


나는 개인 자료에 사용할 그림을 업로드하고 표시하고 싶다.

이미지 파일용 데이터베이스


파일 경로를 저장하기 위해 기존users 테이블에 열을 추가합니다.
php artisan make:migration add_image_column_users_table --table=image

라우팅 선택


제 페이지에서 이미지 투고용 표로 이동하고 싶어서 정리했습니다.
web.php
Route::group(['middleware' => ['auth']],function() {
    //画像投稿フォーム表示
    Route::get('userimage', 'UserEditController@index')->name('image.index');
    //画像保存
    Route::post('userimage', 'UserEditController@upload')->name('image.upload');

컨트롤러


업로드용 컨트롤러를 만들고 싶어요.
UserEditController.php
//画像アップロード画面を表示
    public function index()
    {
        return view('edit.user_image');
    }
UserEditController.php
//画像アップロードされた画像を保存
    public function upload(Request $request)
    {
        //バリデーション
        $this->validate($request,[
            'userimage' => 'required|image'
            ]);

        if($request->isMethod('POST'))
        {
            $path = $request->file('userimage')->store('public/img');
            $image = User::find(\Auth::id());
            $image->image = basename($path); //imageカラムに保存
            $image->save();

            return back()->with(['success' => 'ファイルを保存しました']);
        }
    }
위의 코드는 storage/app/public/img/ 에 업로드된 이미지를 저장합니다.
금방 방법을 잊어버리기 때문에 필기를 합니다.store() 고유한 파일 이름을 자동으로 생성합니다.isMethd 공식 사이트
요청 가져오기 방법
또한 isMethod 방법을 사용하면 지정한 문자열과 HTTP 동사가 일치하는지 조사할 수 있습니다.
이게 아니어도
if ($request->hasFile('image'))  //hasFile()内はinput type の name属性
근데 보기 좋아요.basename 파일 경로를 제외하고 파일 이름만 체크 아웃합니다.

보기


업로드된 이미지의 저장 장소와 읽기 장소가 다르다고 합니다.
저장 위치는 storage/app/public/읽기 위치는 public/storage/그래서 기호 링크를 설정합니다.바로 가기인 것 같습니다.
php artisan storage:link
이렇게 됐으면 좋겠어요.
이렇게 하면 읽기 장소에서 저장 장소를 참조할 수 있다.이렇게 됐어.

AWS의 cloud9에는 이런 것이 있습니다.
참고로 위의 코드 저장storage/app/public/img/에 업로드된 이미지입니다.
이미지 읽기
<img src="{{ asset('/storage/img/' . \Auth::user()->image) }}">
이렇게 읽었어요.이렇게 하면 되나요...?asset() 파일에 대한 전체 경로를 생성할 수 있습니다.
이것은 https 통신할 때 매우 번거로운 것 같다.일단 공부하면 또 다른 기회다.

곤란한 일


처음에 코드를 만들었는데 뭐든지 가능하기 때문에 이미지를 올리려고 캡처를 올리려다가 오류가 났어요.
The userimage failed to upload.
매우 어리석은 잘못으로 괴로워하다.dd($request->file('userimage'));그래도 false가 될 거야.나는 무엇을 해도 몰라서 매우 난처하다phpinfo(); 확인 후 PHP의 파일은 2MB로 제한됩니다.몰라요.
그림 사이즈를 확인했는데 과연 초과했습니다.
기억할게요.
많이 배웠어요.
여기까지 읽어줘서 고마워요.
이 사이트를 참고하도록 허락해 주세요.
Laravel에서 이미지 파일 업로드 예
이미지 업로드 (기본)
Laravel에서 이미지를 업로드하는 방법
[Laravel] 사용자 아이콘 이미지를 투고하고 표시하는 기능을 실현하기 때문에 필기(이미지의 저장 장소는? 기호 링크?)
Laravel에 이미지 파일 저장하기
[Laravel5.6] 이미지 파일 업로드에 대한 요약
정말 고맙습니다.

좋은 웹페이지 즐겨찾기