[Laravel] 파일 업로드 FileUpload

[Laravel] 파일 업로드 FileUpload

[Laravel] 파일 업로드 FileUpload

아래 내용은

https://stackoverflow.com/questions

https://laravel.kr/docs/5.4/filesystem

을 참고하여 작성하였습니다

PHP 개발 프레임 워크인 Laravel 을 이용해서 파일 업로드 기능을 구현하면서

Uncaught RangeError: Maximum call stack size exceeded 문제가 발생할 경우

참고 사이트에 들어가서 확인해보시면 되겠습니다

사용하는 php 파일 이름이나 mapping 등은 단순하게 작성하였으므로 꼭 변경해서 사용해주셔야 합니다

● resources/views/page.blade.php

1 2 3 4 5 < form action = "{{ route('upload') }}" id = "frm" method = "POST" enctype = "multipart/form-data" > {{ csrf_field() }} < input type = "file" name = "uploadFile" / > < input type = "submit" value = "upload" > Colored by Color Scripter cs

위처럼 간단하게 form 태그 안에 input file, submit 태그를 추가하였습니다

Laravel 에서 제공하는 CSRF 보호 기능으로 인해 문제가 발생하지 않도록

csrf_filed 헬퍼를 사용했습니다

● Routes/web.php

1 2 Route::get( 'page' , "uploadController@page" ) - > name( "page" ); Route::post( 'upload' , "uploadController@upload" ) - > name( "upload" ); cs

"page" 로 page.blade.php 로 이동하도록 uploadController의 page 함수에 작성해놓고

"upload" 로 uploadController의 upload 함수에 파일 업로드 기능을 작성 해놓습니다

● Http/Controllers/Controller.php

1 2 3 4 5 6 7 8 public function page(Request $request){ return view( "page" ); } public function upload(Request $request){ $file = $request - > uploadFile - > store( 'images' ); return redirect() - > route( "page" ); } Colored by Color Scripter cs

page 함수에는 page.blade.php 로 이동되도록 작성되어 있으며

upload 함수에는 $request 변수에서 input file 의 이름인 uploadFile 값을 가져오고

store 함수로 저장을 합니다

store 함수에 "images" 를 넣었는데 이 경우 storage/app/images 에 파일이 저장됩니다

저장된 파일의 이름은 XL4jSBqvMx5zbA3MQlzPNawmWuQp10KncqoNPAuy 같이

Laravel 에서 지정해줍니다

파일을 저장하고 redirect 함수로 page 로 라우팅된 페이지로 이동하게 됩니다

Laravel 프레임워크를 이용하여 여러 기능들을 간편하게 구현이 가능하며

방법도 다양하여 취향에 맞게 사용하시면 될 것 같습니다

읽어주셔서 감사합니다

※ 위 내용에 문제가 있거나 수정, 보안해야할 사항이 있다면 언제든지 알려주시면 감사하겠습니다

더 좋은 내용들로 찾아 뵙도록 하겠습니다

from http://gravis.tistory.com/17 by ccl(A) rewrite - 2020-03-06 05:54:45

댓글

이 블로그의 인기 게시물

[PHP] 라라벨 루멘 DB문서 자동화

laravel-1 라우트 & 뷰

PHP 라라벨프레임워크 설치하기 in CentOS 7