[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
댓글
댓글 쓰기