laravel session file upload download
Този урок обхваща Laravel Session, качване на файлове, изтегляне, разрешение за файлове, удостоверяване и упълномощаване на Laravel, изпращане на имейли и др. С примери:
В Формуляри и правила за проверка на Laravel урок на Laravel Tutorial серия , научихме за различни елементи на формуляра с примери.
По-нататък в този урок ние също обсъдихме как да задаване, получаване, изтриване на данни за сесията в сесиите на Laravel и как да изпращате имейли чрез Пощенски капан подробно.
За всички примери сме използвали Laravel версия 7 .
каква е разликата между unix и linux
Предпоставки
В предишните ни уроци разгледахме основни характеристики на 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: Добавете следните два маршрута към маршрути / 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) Използвайки слагам() метод - Този метод съхранява данни чрез екземпляр на заявка.
$request->session()->put('key', 'value');
# две) Използвайки сесия помощник - Този метод съхранява данни чрез глобалния помощник.
session(('key' => 'value'));
Изтриване на данни за сесията на Laravel
The забравих () метод се използва за изтриване на конкретни данни от сесията.
$request->session()->forget(key);
The флъш () метод се използва за изтриване на всички данни от сесията.
Flash данни с помощта на Laravel Session
The флаш () метод се използва и за съхраняване на данни в сесия, но е достъпен само за следващата HTTP заявка.
$request->session()->flash('status', Successful!');
Пример за Laravel сесия
Нека се научим как да задайте, вземете, и Изтрий данни за сесия, като се използва прост пример за сесия.
Етап 1: Изпълнете следната команда в командния ред, за да създадете проект на Laravel с име сесия-урок .
composer create-project --prefer-dist laravel/laravel:^7.0 session-tutorial
Стъпка 2: Добавете следните три маршрута в маршрути / 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 е просто. Свикнало е да идентифициране на потребители . Обикновено се постига чрез идентифициране на потребителското име и паролата на потребителя . Ако идентификационните данни на потребителя са идентифицирани като валидни, тогава потребителят се казва като удостоверен потребител .
The 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 .
composer require laravel/ui
Стъпка 4: Следващата стъпка е да се генерира auth скеле с 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 занаятчия 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 .
composer require laravel/ui
Стъпка 7: Следващата стъпка е да се генерира auth скеле с Bootstrap, View, или Реагирайте . Можете да бягате една от следните команди за създаване на автентично скеле.
Изпълнете следната команда в командния ред, за да генерирате автентично скеле с Bootstrap .
php artisan ui bootstrap --auth
Изпълнете следната команда в командния ред, за да генерирате автентично скеле с Изглед .
php artisan ui vue --auth
Изпълнете следната команда в командния ред, за да генерирате автентично скеле с Реагирайте .
php artisan ui react --auth
Стъпка 8: Изпълнете следните две команди в командния ред, за да компилирате новото скеле, като инсталирате npm зависимости .
въпроси за интервю за angularjs за опитни
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 адреси може да се различават от вашите.
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: Добавете следните два маршрута към маршрути / 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 в App / Mail директория.
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 и Tinker
- Формуляри Laravel и правила за валидиране с пример
- Разрешения за достъп до файлове на Unix: Unix Chmod, Chown и Chgrp
- Разрешения на Unix: Разрешения за файлове в Unix с примери
- Как да качите файл с помощта на Selenium Webdriver - 3 метода
- Файлова манипулация в Unix: Преглед на файловата система Unix