laravel session file upload download
Цей підручник охоплює сеанс Laravel, завантаження файлів, завантаження, дозвіл файлів, автентифікацію та авторизацію Laravel, надсилання електронних листів тощо з прикладами:
В Форми та правила перевірки Laravel підручник з Серія підручників Laravel , ми дізналися про різні елементи форми на прикладах.
Далі в цьому підручнику ми також обговорили, як це зробити встановити, отримати, видалити дані сеансу під сеансами Laravel та як надсилати електронні листи через Поштова пастка детально.
Для всіх прикладів, які ми використовували Версія Laravel 7 .
Запитання та відповіді на співбесіду angularjs для досвідчених у .net
Передумови
У наших попередніх навчальних посібниках ми вже висвітлювали основні риси Laravel , обробка бази даних, і обробка форми , і ви повинні бути ознайомлені з цими темами для кращого розуміння цього підручника.
Давайте почнемо!
Що ви дізнаєтесь:
- Завантаження файлу Laravel
- Сесія Laravel
- Аутентифікація Laravel
- Авторизація Laravel
- Надсилання електронних листів у Laravel
- Висновок
Завантаження файлу Laravel
Завантажувати файли в Laravel легко. Розробник також може вказати Laravel файлові дозволи такі як типи файлів, обмеження розміру файлів, які може завантажити користувач тощо.
Приклад завантаження файлу Laravel
У цьому прикладі ми створили просту форму з валідацією для завантаження файлів.
Крок 1: Виконайте наступну команду в командному рядку, щоб створити проект Laravel з іменем підручник із завантаження файлів .
composer create-project --prefer-dist laravel/laravel:^7.0 file-uploading-tutorial
Крок 2: Додайте наступні два маршрути до routes / 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: контролер 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-адреса може відрізнятися від вашої.
http: //file-uploading-tutorial.test/file/upload
Крок 7: Тепер ви можете завантажити дійсний файл і надіслати форму. Переконайтеся, що завантажений файл зберігається в завантаження файлів папку. Ви також можете спробувати завантажити недійсний файл (файл із перевищеним типом файлу та / або обмеженням розміру) і надіслати форму для перевірки перевірки.
У наведеному вище прикладі користувачеві дозволено лише надсилати док , docx , дев’ятнадцятий , csv, і pdf файли з максимальним розміром 1024 байта .
Приклад 1: Завантаження PDF-файлу розміром менше 1024 байт.
Приклад 2: Завантаження файлу зображення (PNG, JPEG тощо).
Приклад 3: Завантаження PDF-файлу розміром більше 1024 байт.
Сесія Laravel
ДО сесія звик зберігати дані користувачів у кількох запитах користувачів . Це допомагає відстежувати користувачів веб-сайту . Конфігурацію сеансу Laravel можна зробити в config / session.php файл. За замовчуванням файловий драйвер використовується для обробки даних сеансу.
Отримання даних сеансу Laravel
По-перше, вам потрібно отримати екземпляр сеансу, до якого можна отримати доступ через HTTP-запит. Потім використовуйте отримати () спосіб доступу до даних.
$session_data = $request->session()->get('key');
Зберігання даних на сесії Laravel
Існує два способи зберігання даних у сеансі.
# 1) Використання put () метод - Цей метод зберігає дані через екземпляр запиту.
$request->session()->put('key', 'value');
# два) Використовуючи сесія helper - Цей метод зберігає дані через глобальний помічник.
session(('key' => 'value'));
Видалення даних сеансу Laravel
забув () метод використовується для видалення певних даних із сеансу.
$request->session()->forget(key);
змити () метод використовується для видалення всіх даних із сеансу.
Flash-дані за допомогою сеансу Laravel
спалах () метод також використовується для зберігання даних у сеансі, але доступний лише для наступного HTTP-запиту.
$request->session()->flash('status', Successful!');
Приклад сеансу Laravel
Давайте дізнаємось, як це робити встановити, отримати, і видалити дані сеансу на простому прикладі сеансу.
Крок 1: Виконайте наступну команду в командному рядку, щоб створити проект Laravel з іменем сесія-підручник .
composer create-project --prefer-dist laravel/laravel:^7.0 session-tutorial
Крок 2: Додайте наступні три маршрути в routes / 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: контролер 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-адреси можуть відрізнятися від ваших.
# 1) Відвідайте наступну URL-адресу встановити дані сеансу .
http: //session-tutorial.test/session/set
Це дасть результат, подібний до знімка екрана нижче.
# два) Відвідайте наступну URL-адресу отримати дані сеансу .
http: //session-tutorial.test/session/get
Це дасть результат, подібний до знімка екрана нижче.
# 3) Відвідайте наступну URL-адресу видалити дані сеансу - .
http: //session-tutorial.test/session/delete
Це дасть результат, подібний до знімка екрана нижче.
# 4) Після видалення даних сеансу перегляньте наступну URL-адресу.
http: //session-tutorial.test/session/get
Це дасть результат, подібний до знімка екрана нижче.
Аутентифікація Laravel
Аутентифікація Laravel проста. Це звикло ідентифікувати користувачів . Зазвичай це досягається шляхом ідентифікація імені користувача та пароля користувача . Якщо облікові дані користувача визнані дійсними, тоді користувач називається автентифікований користувач .
config / auth.php файл - це файл конфігурації аутентифікації. Аутентифікація Laravel складається з охоронці і провайдерів .
Охоронці: Він визначає спосіб автентифікації користувачів для кожного запиту.
Постачальники послуг: Він визначає спосіб отримання користувачів із вашого постійного сховища.
Крім того, ви також можете визначити додаткових постачальників, якщо це необхідно. Однак це не повинно змінювати конфігурацію автентифікації за замовчуванням.
Будь ласка, зверніть увагу, що ми не детально обговорювали охоронців та постачальників у цьому посібнику.
Приклад автентифікації
У цьому прикладі ми створили просту систему авторизації Laravel 7.
Крок 1: Виконайте наступну команду в командному рядку, щоб створити проект Laravel з іменем auth-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 auth-tutorial
Крок 2: Підключіть свій проект до бази даних і запустіть наступну команду в командному рядку для запуску міграцій за замовчуванням.
php artisan migrate
Крок 3: Виконайте наступну команду в командному рядку, щоб встановити Пакет Laravel UI .
composer require laravel/ui
Крок 4: Наступним кроком є генерація аутентифікаційні риштування з Bootstrap, View, або Зреагуйте . Можна бігати одна з наступних команд для створення автентичних риштувань.
Виконайте наступну команду в командному рядку, щоб створити автентифікаційні ліси за допомогою Bootstrap .
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-адресу, щоб зареєструвати нового користувача, і вона видасть результат, подібний до знімка екрана нижче.
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: переміщення 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 .
composer require laravel/ui
Крок 7: Наступним кроком є генерація аутентифікаційні риштування з Bootstrap, View, або Зреагуйте . Можна бігати одна з наступних команд для створення автентичних риштувань.
Виконайте наступну команду в командному рядку, щоб створити автентифікаційні ліси за допомогою Bootstrap .
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 файл за адресою Програми / провайдери та модифікуйте існуючий код, як показано нижче:
найкраща програма очищення для Windows 10
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-адреси можуть відрізнятися від ваших.
http: //authorization-tutorial.test/login
- Логін адміністратора
Якщо ви ввійшли як адміністратор , тоді результат буде схожий на наступний знімок екрана.
- Логін менеджера
Якщо ви ввійшли як менеджер , тоді результат буде схожий на наступний знімок екрана.
- Вхід користувача
Якщо ви ввійшли як користувач , тоді результат буде схожий на наступний знімок екрана.
Надсилання електронних листів у 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: Додайте наступні два маршрути до routes / web.php файл.
Route::get('/contact', 'ContactController@contact')->name('contact'); Route::post('/contact', 'ContactController@sendContactForm')->name('contact.send');
Крок 6: Виконайте наступну команду в командному рядку для створення FileUploadController та модифікуйте існуючий код, як показано нижче.
php artisan make: контролер 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-адреса може відрізнятися від вашої.
http: //email-tutorial.test/contact
Крок 11: Заповніть форму та надішліть.
Крок 12: Тепер відвідайте ваш Поштова пастка облікового запису та перевірте вхідні. Ви побачите нове повідомлення у папці 'Вхідні', подібне до знімка екрана нижче.
Висновок
Завантажити файл Laravel легко, і розробник також може встановити дозволи на файл Laravel. Laravel забезпечує простий спосіб встановлення, отримання та видалення даних сеансу. Аутентифікація Laravel допомагає ідентифікувати користувачів, тоді як авторизація Laravel перевіряє, чи мають авторизовані користувачі дозвіл на доступ до запитуваних ресурсів.
Ми можемо використовувати такі інструменти, як Mailtrap, для тестування електронних листів перед тим, як надсилати їх у фактичні скриньки.
Ми сподіваємось, що цей підручник виявився корисним! Сподіваємось побачити вас знову у наступному уроці, де ми будемо обговорювати Кузня Laravel та колекції .
Щасливого навчання!
<< PREV Tutorial | НАСТУПНИЙ підручник >>
Рекомендована література
- Підручник для початківців PHP Laravel: що таке фреймворк Laravel
- Колекція Laravel та підручник Laravel Forge
- База даних Laravel, Міграції, Красномовний ORM та Тинкер
- Форми Laravel та правила перевірки на прикладі
- Дозволи доступу до файлів Unix: Unix Chmod, Chown та Chgrp
- Дозволи Unix: Дозволи файлів у Unix із прикладами
- Як завантажити файл за допомогою Selenium Webdriver - 3 методи
- Маніпулювання файлами в Unix: огляд файлової системи Unix