laravel session file upload download
이 튜토리얼에서는 Laravel 세션, 파일 업로드, 다운로드, 파일 권한, Laravel 인증 및 권한 부여, 이메일 보내기 등을 예제와 함께 다룹니다.
에서 Laravel 양식 및 유효성 검사 규칙 튜토리얼 Laravel 튜토리얼 시리즈 , 우리는 예제를 통해 다양한 양식 요소에 대해 배웠습니다.
이 튜토리얼에서는 다음 방법에 대해서도 논의했습니다. 세션 데이터 설정, 가져 오기, 삭제 Laravel 세션에서 이메일을 보내는 방법 우편함 상세히.
모든 예에서 우리는 Laravel 버전 7 .
자바에서 배열을 뒤집는 방법
전제 조건
이전 튜토리얼에서 우리는 라 라벨의 기본 기능 , 데이터베이스 처리, 과 양식 처리 이 튜토리얼을 더 잘 이해하려면 해당 주제에 익숙해야합니다.
의 시작하자!
학습 내용 :
Laravel 파일 업로드
Laravel에서 파일을 업로드하는 것은 쉽습니다. 개발자는 또한 지정할 수 있습니다 라 라벨 파일 권한 파일 형식, 사용자가 업로드 할 수있는 파일의 크기 제한 등
Laravel 파일 업로드 예
이 예에서는 파일 업로드를위한 유효성 검사가 포함 된 간단한 양식을 만들었습니다.
1 단계: 명령 프롬프트에서 다음 명령을 실행하여 Laravel 프로젝트를 만듭니다. 파일 업로드 자습서 .
composer create-project --prefer-dist laravel/laravel:^7.0 file-uploading-tutorial
2 단계: 다음 두 경로를 route / web.php 파일.
Route::get('file/upload','FileUploadController@create')->name('file.create'); Route::post('file/upload','FileUploadController@store')->name('file.store');
3 단계 : 명령 프롬프트에서 다음 명령을 실행하여 FileUploadController 아래와 같이 기존 코드를 수정합니다.
php artisan make : controller FileUploadController
validate(('file' => 'required|mimes:doc,docx,xlx,csv,pdf|max:1024')); $file_name = time().'.'.$request->file->extension(); $request->file->move(public_path('file uploads'), $file_name); return back() ->with('success','Successfully uploaded a file!') ->with('file',$file_name); } }
4 단계 : 다음과 같은 뷰 파일을 만듭니다. create.blade.php 다음 코드를 추가하십시오.
Laravel File Uploading Tutorial @if (count($errors) > 0) @foreach ($errors->all() as $error) - {{ $error }}
@endforeach
@endif @if ($message = Session::get('success')) × {{ $message }} @endif Laravel File Uploading
@csrf File
5 단계 : 다음과 같은 폴더를 만듭니다. 파일 업로드 에 공공의 폴더. 업로드 된 파일이 저장되는 폴더입니다.
6 단계 : 다음 URL을 방문하면 아래 스크린 샷과 유사한 출력이 생성됩니다.
노트 : 다음 URL은 귀하의 URL과 다를 수 있습니다.
http : //file-uploading-tutorial.test/file/upload
7 단계 : 이제 유효한 파일을 업로드하고 양식을 제출할 수 있습니다. 업로드 된 파일이 파일 업로드 폴더. 유효하지 않은 파일 (유효하지 않은 파일 유형 및 / 또는 크기 제한 초과 파일)을 업로드하고 양식을 제출하여 유효성을 확인할 수도 있습니다.
위의 예에서 사용자는 제출 만 허용됩니다. 문서 , docx , 열 아홉 번째 , csv, 과 pdf 최대 크기의 파일 1024 바이트 .
예 1 : 크기가 1024 바이트 미만인 pdf 파일을 업로드합니다.
예 2 : 이미지 파일 (PNG, JPEG 등) 업로드.
예 3 : 크기가 1024 바이트를 초과하는 pdf 파일을 업로드합니다.
라 라벨 세션
에 세션 에 사용된다 여러 사용자 요청에 걸쳐 사용자 데이터 저장 . 도움이 웹 사이트 사용자를 추적 . Laravel 세션 구성은 config / session.php 파일. 기본적으로 파일 드라이버 세션 데이터를 처리하는 데 사용됩니다.
Laravel 세션 데이터 검색
먼저 HTTP 요청을 통해 액세스 할 수있는 세션 인스턴스를 가져와야합니다. 그런 다음 가져 오기() 데이터에 액세스하는 방법.
$session_data = $request->session()->get('key');
Laravel 세션에 데이터 저장
세션에 데이터를 저장하는 방법에는 두 가지가 있습니다.
#1) 사용 놓다() method –이 메서드는 요청 인스턴스를 통해 데이터를 저장합니다.
$request->session()->put('key', 'value');
#두) 사용 세션 helper –이 메서드는 전역 도우미를 통해 데이터를 저장합니다.
session(('key' => 'value'));
Laravel 세션 데이터 삭제
그만큼 잊었다 () 메서드는 세션에서 특정 데이터를 삭제하는 데 사용됩니다.
$request->session()->forget(key);
그만큼 플러시() 메서드는 세션에서 모든 데이터를 삭제하는 데 사용됩니다.
Laravel 세션을 사용한 플래시 데이터
그만큼 플래시() 메서드는 세션에 데이터를 저장하는데도 사용되지만 다음 HTTP 요청에만 사용할 수 있습니다.
$request->session()->flash('status', Successful!');
Laravel 세션 예
방법을 배우자 설정, 가져 오기, 과 지우다 간단한 세션 예제를 사용하여 세션 데이터.
1 단계: 명령 프롬프트에서 다음 명령을 실행하여 Laravel 프로젝트를 만듭니다. 세션 자습서 .
composer create-project --prefer-dist laravel/laravel:^7.0 session-tutorial
2 단계: 다음 세 가지 경로를 route / web.php 파일.
Route::get('session/set','SessionController@store')->name('session.store'); Route::get('session/get','SessionController@index')->name('session.index'); Route::get('session/delete','SessionController@delete')->name('session.delete');
3 단계 : 명령 프롬프트에서 다음 명령을 실행하여 SessionController 아래와 같이 기존 코드를 수정합니다.
php artisan make : controller SessionController
session()->has('username')) echo $request->session()->get('username'); else echo 'No session data.'; } public function store(Request $request) { $request->session()->put('username','User A'); echo 'Session data stored.'; } public function delete(Request $request) { $request->session()->forget('username'); echo 'Session data deleted.'; } }
4 단계 : 주어진 순서대로 다음 URL을 방문하여 세트 , 가져 오기, 과 지우다 세션 데이터.
노트 : 다음 URL은 귀하의 URL과 다를 수 있습니다.
#1) 다음 URL을 방문하여 세션 데이터 설정 .
http : //session-tutorial.test/session/set
아래 스크린 샷과 유사한 출력이 생성됩니다.
#두) 다음 URL을 방문하여 세션 데이터 가져 오기 .
http : //session-tutorial.test/session/get
아래 스크린 샷과 유사한 출력이 생성됩니다.
#삼) 다음 URL을 방문하여 세션 데이터 삭제 .
http : //session-tutorial.test/session/delete
아래 스크린 샷과 유사한 출력이 생성됩니다.
# 4) 세션 데이터를 삭제 한 후 다음 URL을 다시 방문하십시오.
http : //session-tutorial.test/session/get
아래 스크린 샷과 유사한 출력이 생성됩니다.
라 라벨 인증
라 라벨 인증은 간단합니다. 그것은에 사용됩니다 사용자 식별 . 일반적으로 다음을 통해 달성됩니다. 사용자의 사용자 이름 및 비밀번호 식별 . 사용자 자격 증명이 유효한 것으로 식별되면 사용자는 인증 된 사용자 .
그만큼 config / auth.php file은 인증 구성 파일입니다. 라 라벨 인증은 근위 연대 과 제공자 .
근위 연대: 각 요청에 대해 사용자가 인증되는 방법을 정의합니다.
공급자 : 영구 저장소에서 사용자를 검색하는 방법을 정의합니다.
또한 필요에 따라 추가 공급자를 정의 할 수도 있습니다. 그러나 기본 인증 구성을 변경할 필요는 없습니다.
점에 유의하시기 바랍니다 이 튜토리얼에서는 가드와 공급자에 대해 자세히 설명하지 않았습니다.
인증 예
이 예에서는 간단한 Laravel 7 인증 시스템을 만들었습니다.
1 단계: 명령 프롬프트에서 다음 명령을 실행하여 Laravel 프로젝트를 만듭니다. auth-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 auth-tutorial
2 단계: 프로젝트를 데이터베이스에 연결하고 명령 프롬프트에서 다음 명령을 실행하여 기본 마이그레이션을 실행합니다.
php artisan migrate
3 단계 : 명령 프롬프트에서 다음 명령을 실행하여 Laravel UI package .
composer require laravel/ui
4 단계 : 다음 단계는 인증 스캐 폴딩 와 부트 스트랩, 또는 반응 . 당신은 실행할 수 있습니다 다음 명령 중 하나 인증 스캐 폴딩을 만듭니다.
명령 프롬프트에서 다음 명령을 실행하여 인증 스캐 폴딩을 생성합니다. 부트 스트랩 .
php artisan ui bootstrap --auth
명령 프롬프트에서 다음 명령을 실행하여 인증 스캐 폴딩을 생성합니다. 전망 .
php artisan ui vue --auth
명령 프롬프트에서 다음 명령을 실행하여 인증 스캐 폴딩을 생성합니다. 반응 .
php artisan ui react --auth
5 단계 : 명령 프롬프트에서 다음 두 명령을 실행하여 설치하여 새 스캐 폴딩을 컴파일하십시오. npm 종속성 .
npm install npm run dev
6 단계 : 새 사용자를 만들고 (새 사용자 등록) 시스템에 로그인하여 인증을 테스트하려면 다음 URL을 방문하십시오. 유효한 데이터와 잘못된 데이터를 모두 시도하여 인증을 테스트 할 수 있습니다.
노트 : 다음 URL은 귀하의 URL과 다를 수 있습니다.
먼저 새로운 사용자를 등록해야합니다. 다음 URL을 방문하여 새 사용자를 등록하면 아래 스크린 샷과 유사한 출력이 생성됩니다.
http : //auth-tutorial.test/register
신규 사용자 등록 후 다음 URL을 방문하여 시스템에 로그인하면 아래 스크린 샷과 유사한 출력이 생성됩니다.
http : //auth-tutorial.test/login
로그인이 성공하면 사용자가 홈페이지 / 대시 보드 아래 그림과 같이.
Laravel 승인
간단히 말해서 권한 부여 여부를 확인 인증 된 사용자는 요청 된 리소스에 액세스하는 데 필요한 권한이 있습니다. .
승인 예
이 예에서는 간단한 Laravel 7 인증 시스템을 만들었습니다.
1 단계: 명령 프롬프트에서 다음 명령을 실행하여 Laravel 프로젝트를 만듭니다. 승인 자습서 .
composer create-project --prefer-dist laravel/laravel:^7.0 authorization-tutorial
2 단계: 프로젝트를 데이터베이스에 연결하십시오.
3 단계 : 명령 프롬프트에서 다음 명령을 실행하여 add_role_column_to_users_table 마이그레이션하고 아래와 같이 기존 코드를 수정합니다.
php artisan make : migration add_role_column_to_users_table
enum('role', ('admin', 'manager', 'user'))->default('user'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('users', function (Blueprint $table) { // }); } }
4 단계 : 명령 프롬프트에서 다음 명령을 실행하여 모든 마이그레이션을 실행합니다.
php artisan migrate
5 단계 : 샘플 데이터를 사용자 테이블 사용 땜장이 아래 그림과 같이:
C:laragonwwwauthorization-tutorial php artisan tinker Psy Shell v0.10.4 (PHP 7.2.19 — cli) by Justin Hileman >>> $user = new AppUser; => AppUser {#3260} >>> $user->name = 'User A'; => 'User A' >>> $user->email = 'admina@user.com'; => 'admina@user.com' >>> $user->password = bcrypt('user123'); => 'y$E5hDEej0Cue1U5AY..tmR.Wd/YCo9LXN0kbqvX1por8Cdfi.NhGv6' >>> $user->role = 'admin'; => 'admin' >>> $user->save(); => true
6 단계 : 명령 프롬프트에서 다음 명령을 실행하여 Laravel UI package .
composer require laravel/ui
7 단계 : 다음 단계는 인증 스캐 폴딩 와 부트 스트랩, 또는 반응 . 당신은 실행할 수 있습니다 다음 명령 중 하나 인증 스캐 폴딩을 만듭니다.
명령 프롬프트에서 다음 명령을 실행하여 인증 스캐 폴딩을 생성합니다. 부트 스트랩 .
php artisan ui bootstrap --auth
명령 프롬프트에서 다음 명령을 실행하여 인증 스캐 폴딩을 생성합니다. 전망 .
php artisan ui vue --auth
명령 프롬프트에서 다음 명령을 실행하여 인증 스캐 폴딩을 생성합니다. 반응 .
php artisan ui react --auth
8 단계 : 명령 프롬프트에서 다음 두 명령을 실행하여 설치하여 새 스캐 폴딩을 컴파일하십시오. npm 종속성 .
npm install npm run dev
9 단계 : 열기 AuthServiceProvider.php 파일 앱 / 제공 업체 아래와 같이 기존 코드를 수정합니다.
registerPolicies(); Gate::define('isAdmin', function($user) { return $user->role == 'admin'; }); Gate::define('isManager', function($user) { return $user->role == 'manager'; }); Gate::define('isUser', function($user) { return $user->role == 'user'; }); } }
10 단계 : 기존 코드를 수정하십시오. home.blade.php 아래와 같이 파일 :
@extends('layouts.app') @section('content') {{ __('Dashboard') }} @if (session('status')) {{ session('status') }} @endif @can('isAdmin') I am an admin. @elsecan('isManager') I am a manager. @else I am a user. @endcan @endsection
11 단계 : 다음 URL을 방문하면 아래 스크린 샷과 유사한 출력이 생성됩니다. 그런 다음 관리자, 관리자 및 사용자로 한 번에 하나씩 시스템에 로그인하십시오.
노트 : 다음 URL은 귀하의 URL과 다를 수 있습니다.
http : //authorization-tutorial.test/login
C ++ 초 동안 기다립니다
- 관리자 로그인
로 로그인 한 경우 관리자 이면 출력은 다음 스크린 샷과 유사합니다.
- 관리자 로그인
로그인 한 경우 매니저 이면 출력은 다음 스크린 샷과 유사합니다.
- 사용자 로그인
로그인 한 경우 사용자 이면 출력은 다음 스크린 샷과 유사합니다.
Laravel에서 이메일 보내기
Mailtrap이란?
Laravel에서 이메일을 테스트하는 데 사용할 수있는 몇 가지 무료 온라인 도구가 있습니다. 우편함 그러한 도구 중 하나입니다. Mailtrap은 가짜 SMTP 서버를 사용하여 이메일을 테스트합니다. 개발자 또는 테스터가 실제받은 편지함으로 보내기 전에 이메일 공유 방법을 테스트 할 수 있도록 로컬 호스트로부터 이메일을받습니다.
이메일 보내기 예
다음을 사용하여 간단한 예를 들어 보겠습니다. 우편함 .
1 단계: 명령 프롬프트에서 다음 명령을 실행하여 Laravel 프로젝트를 만듭니다. 이메일 자습서 .
composer create-project --prefer-dist laravel/laravel:^7.0 email-tutorial
2 단계: 방문하다 URL 새 Mailtrap 계정을 만들거나 이미있는 경우 Mailtrap 계정에 로그인합니다.
3 단계 : Mailtrap 계정에 로그인 한 후
#1) 클릭 데모받은 편지함 .
#두) 식별 사용자 이름 과 암호 아래에 SMTP . 이 사용자 이름과 비밀번호는 고유하며 다음 단계에서 사용합니다.
노트 : 방문하다 URL Mailtrap에 대해 더 알고 싶습니다.
4 단계 : . env 파일을 입력하고 우편함 사용자 이름과 비밀번호.
MAIL_MAILER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME= enter your Mailtrap username here MAIL_PASSWORD= enter your Mailtrap password here MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=null MAIL_FROM_NAME='${APP_NAME}'
5 단계 : 다음 두 경로를 route / web.php 파일.
Route::get('/contact', 'ContactController@contact')->name('contact'); Route::post('/contact', 'ContactController@sendContactForm')->name('contact.send');
6 단계 : 명령 프롬프트에서 다음 명령을 실행하여 FileUploadController 아래와 같이 기존 코드를 수정합니다.
php artisan make : controller ContactController
validate($request, ( 'name' => 'required', 'email' => 'required|email', 'subject' => 'required', 'message' => 'required', )); $data = array( 'name' => $request->name, 'email' => $request->email, 'subject' => $request->subject, 'message' => $request->message, ); Mail::to('user@test.com')->send(new ContactMail($data)); return redirect()->back()->with('success', 'Your message was submitted successfully. Thank you!'); } }
7 단계 : 명령 프롬프트에서 다음 명령을 실행하여 ContactMail 수업. 이 명령은 다음과 같은 파일을 생성합니다. ContactMail.php 에 앱 / 메일 예배 규칙서.
php artisan make:mail ContactMail
8 단계 : 기존 코드를 수정하십시오. ContactMail.php 아래와 같이 파일.
data = $data; } /** * Build the message. * * @return $this */ public function build() { return $this->from($this->data('email')) ->subject('Contact Form') ->view('contact-template')->with('data', $this->data); } }
9 단계 : 다음 뷰 파일을 만들고 코드를 추가합니다.
#1) 만들기 contact.blade.php 파일을 열고 다음 코드를 추가하십시오.
Contact Us @if (count($errors) > 0) @foreach ($errors->all() as $error) - {{ $error }}
@endforeach
@endif @if ($message = Session::get('success')) × {{ $message }} @endif Contact Us
@csrf Name Email Subject Message {{ old('message') }} Send
#두) 만들기 contact-template.blade.php 파일을 열고 다음 코드를 추가하십시오.
Name: {{ $data('name') }}
Subject: {{ $data('subject') }}
Message: {{ $data('message') }}
10 단계 : 다음 URL을 방문하면 아래 스크린 샷과 유사한 출력이 생성됩니다.
노트 : 다음 URL은 귀하의 URL과 다를 수 있습니다.
http : //email-tutorial.test/contact
11 단계 : 양식을 작성하고 제출하십시오.
12 단계 : 이제 우편함 계정 및받은 편지함을 확인하십시오. 아래 스크린 샷과 유사한 새 메시지가받은 편지함에 표시됩니다.
결론
Laravel 파일 업로드는 간단하며 개발자는 Laravel 파일 권한을 설정할 수도 있습니다. Laravel은 세션 데이터를 설정, 가져 오기 및 삭제하는 쉬운 방법을 제공합니다. Laravel 인증은 사용자를 식별하는 데 도움이되며 Laravel 인증은 인증 된 사용자가 요청 된 리소스에 액세스 할 수있는 권한이 있는지 확인합니다.
Mailtrap과 같은 도구를 사용하여 이메일을 실제받은 편지함으로 보내기 전에 테스트 할 수 있습니다.
이 튜토리얼이 도움이 되었기를 바랍니다. 우리가 논의 할 다음 튜토리얼에서 다시 만나기를 바랍니다. 라 라벨 포지 및 컬렉션 .
즐거운 학습 되세요!
<< PREV Tutorial | 다음 튜토리얼 >>