laravel session file upload download
Овај водич обухвата Ларавел Сессион, отпремање датотека, преузимање, дозволу датотека, Ларавел аутентификацију и ауторизацију, слање е-поште итд. Са примерима:
У Ларавел обрасци и правила за валидацију туториал оф Ларавел Туториал серија , научили смо о различитим елементима облика са примерима.
Даље у овом водичу, такође смо разговарали о томе како постављање, добијање, брисање података о сесији у оквиру Ларавел сесија и како послати е-пошту путем Маилтрап детаљно.
За све примере смо користили Ларавел верзија 7 .
генерално, у која два периода тестирања се пронађе већина грешака (недостатака)?
Предуслови
У нашим претходним водичима смо то покрили основне карактеристике Ларавела , руковање базама података, и руковање формом , и морате бити упознати са тим темама за боље разумевање овог водича.
Почнимо!
Шта ћете научити:
- Отпремање датотеке Ларавел
- Ларавел Сессион
- Ларавел Аутхентицатион
- Ларавел Аутхоризатион
- Слање е-поште у Ларавел
- Закључак
Отпремање датотеке Ларавел
Отпремање датотека у Ларавел је једноставно. Програмер такође може да наведе Ларавел дозволе за датотеке као што су типови датотека, ограничења величине датотека које корисник може да учита итд.
Пример отпремања датотеке Ларавел
У овом примеру смо креирали једноставан образац са провером ваљаности за отпремање датотека.
Корак 1: Покрените следећу команду у командној линији да бисте креирали пројекат Ларавел са именом туториал за учитавање датотека .
composer create-project --prefer-dist laravel/laravel:^7.0 file-uploading-tutorial
Корак 2: Додајте следеће две руте у роутес / веб.пхп датотека.
Route::get('file/upload','FileUploadController@create')->name('file.create'); Route::post('file/upload','FileUploadController@store')->name('file.store');
Корак 3: Покрените следећу команду у командној линији да бисте креирали ФилеУплоадЦонтроллер и измените постојећи код како је приказано у наставку.
пхп артисан маке: контролер ФилеУплоадЦонтроллер
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: Направите датотеку приказа са именом цреате.бладе.пхп и додајте следећи код:
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: Посетите следећу УРЛ адресу и она ће произвести излаз сличан доњем снимку екрана.
Белешка : Следећи УРЛ се може разликовати од вашег.
хттп: //филе-уплоадинг-туториал.тест/филе/уплоад
Корак 7: Сада можете да отпремите важећу датотеку и пошаљете образац. Проверите да ли је отпремљена датотека ускладиштена у отпремање датотека директоријум. Такође можете покушати да отпремите неважећу датотеку (датотека са неважећом врстом датотеке и / или ограниченом величином датотеке) и пошаљете образац да бисте проверили ваљаност.
У горњем примеру, кориснику је дозвољено само да преда доц , доцк , деветнаести , цсв, и пдф датотеке максималне величине 1024 бајтова .
Пример 1: Отпремање пдф датотеке величине мање од 1024 бајта.
Пример 2: Отпремање датотеке слике (ПНГ, ЈПЕГ, итд.).
Пример 3: Отпремање пдф датотеке величине веће од 1024 бајта.
Ларавел Сессион
ДО седница се користи за чување корисничких података у више корисничких захтева . Помаже да се пратити кориснике веб странице . Конфигурација сесије Ларавел може се извршити у цонфиг / сессион.пхп датотека. Подразумевано, управљачки програм датотекама користи се за обраду података сесије.
Преузимање података о сесији Ларавел
Прво, морате добити инстанцу сесије којој се може приступити путем ХТТП захтева. Затим користите добити() метода за приступ подацима.
$session_data = $request->session()->get('key');
Похрањивање података у Ларавел сесији
Постоје два начина за чување података у сесији.
# 1) Помоћу ставити() метода - Ова метода чува податке путем инстанце захтева.
$request->session()->put('key', 'value');
#два) Користећи седница помоћник - Ова метода чува податке путем глобалног помагача.
session(('key' => 'value'));
Брисање података о сесији Ларавел
Тхе заборавио () метода се користи за брисање одређених података из сесије.
$request->session()->forget(key);
Тхе испрати () метода се користи за брисање свих података из сесије.
Фласх подаци користећи Ларавел сесију
Тхе блиц () метода се такође користи за чување података у сесији, али доступна само за следећи ХТТП захтев.
$request->session()->flash('status', Successful!');
Пример сесије Ларавел
Научимо како сет, гет, и избрисати подаци сесије на једноставном примеру сесије.
Корак 1: Покрените следећу команду у командној линији да бисте креирали пројекат Ларавел са именом сесија-туториал .
composer create-project --prefer-dist laravel/laravel:^7.0 session-tutorial
Корак 2: Додајте следеће три руте у роутес / веб.пхп датотека.
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: Покрените следећу команду у командној линији да бисте креирали СессионЦонтроллер и измените постојећи код како је приказано доле:
пхп артисан маке: контролер СессионЦонтроллер
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: Посетите следеће УРЛ адресе наведеним редоследом да бисте комплет , добити, и избрисати подаци о сесији.
Белешка : Следеће УРЛ адресе могу се разликовати од ваших.
# 1) Посетите следећу УРЛ адресу подесите податке о сесији .
хттп: //сессион-туториал.тест/сессион/сет
Даће излаз сличан доњем снимку екрана.
#два) Посетите следећу УРЛ адресу добити податке о сесији .
хттп: //сессион-туториал.тест/сессион/гет
Даће излаз сличан доњем снимку екрана.
# 3) Посетите следећу УРЛ адресу обриши податке о сесији .
хттп: //сессион-туториал.тест/сессион/делете
Даће излаз сличан доњем снимку екрана.
# 4) Након брисања података о сесији, поново посетите следећу УРЛ адресу.
хттп: //сессион-туториал.тест/сессион/гет
Даће излаз сличан доњем снимку екрана.
Ларавел Аутхентицатион
Ларавел аутентификација је једноставна. Навикло је на идентификују кориснике . Обично се то постиже помоћу идентификовање корисничког имена и лозинке корисника . Ако су кориснички акредитиви идентификовани као важећи, тада се каже да је корисник овјерени корисник .
Тхе цонфиг / аутх.пхп датотека је конфигурациона датотека за потврду идентитета. Ларавел аутентификација се састоји од стражари и провајдери .
Стража: Дефинише начин аутентификације корисника за сваки захтев.
Добављачи: Дефинише како се корисници преузимају из ваше трајне меморије.
Даље, према потреби можете дефинисати и додатне добављаче. Међутим, не мора мењати подразумевану конфигурацију потврде идентитета.
Имајте на уму да у овом упутству нисмо детаљно разговарали о чуварима и пружаоцима услуга.
Пример аутентификације
У овом примеру створили смо једноставан систем за ауторизацију Ларавел 7.
Корак 1: Покрените следећу команду у командној линији да бисте креирали пројекат Ларавел са именом аутх-туториал .
composer create-project --prefer-dist laravel/laravel:^7.0 auth-tutorial
Корак 2: Повежите свој пројекат са базом података и покрените следећу команду у командној линији да бисте покренули подразумеване миграције.
php artisan migrate
Корак 3: Покрените следећу наредбу у командној линији да бисте инсталирали Ларавел УИ пакет .
composer require laravel/ui
Корак 4: Следећи корак је генерисање аутх скеле са Боотстрап, Виев, или Реагуј . Можете трчати једна од следећих команди за стварање ауторских скела.
Покрените следећу наредбу у командној линији да бисте генерисали скене за ауторизацију помоћу Боотстрап .
php artisan ui bootstrap --auth
Покрените следећу наредбу у командној линији да бисте генерисали скене за ауторизацију помоћу Поглед .
php artisan ui vue --auth
Покрените следећу наредбу у командној линији да бисте генерисали скене за ауторизацију помоћу Реагуј .
php artisan ui react --auth
Корак 5: Покрените следеће две команде у командној линији да бисте инсталирали нову скелу нпм зависности .
npm install npm run dev
Корак 6: Посетите следеће УРЛ адресе да бисте тестирали потврду идентитета стварањем новог корисника (регистрацијом новог корисника) и пријављивањем у систем. Можете да испробате и важеће и неважеће податке да бисте тестирали потврду идентитета.
Белешка : Следеће УРЛ адресе могу се разликовати од ваших.
Прво морате да региструјете новог корисника. Посетите следећи УРЛ да бисте регистровали новог корисника и он ће произвести излаз сличан доњем снимку екрана.
хттп: //аутх-туториал.тест/регистер
Након регистрације новог корисника, пријавите се у систем посетом следећег УРЛ-а и он ће произвести излаз сличан доњем снимку екрана.
хттп: //аутх-туториал.тест/логин
Успешна пријава преусмериће корисника на почетна страница / контролна табла како је приказано испод.
Ларавел Аутхоризатион
Поједностављено речено, овлашћење проверава да ли је аутентификовани корисници имају потребну дозволу за приступ траженим ресурсима .
Пример одобрења
У овом примеру створили смо једноставан систем ауторизације Ларавел 7.
Корак 1: Покрените следећу команду у командној линији да бисте креирали пројекат Ларавел са именом упутство за ауторизацију .
composer create-project --prefer-dist laravel/laravel:^7.0 authorization-tutorial
Корак 2: Повежите свој пројекат са базом података.
Корак 3: Покрените следећу команду у командној линији да бисте креирали адд_роле_цолумн_то_усерс_табле миграција и модификација постојећег кода као што је приказано доле:
пхп занатлија маке: миграција адд_роле_цолумн_то_усерс_табле
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: Покрените следећу наредбу у командној линији да бисте инсталирали Ларавел УИ пакет .
composer require laravel/ui
Корак 7: Следећи корак је генерисање аутх скеле са Боотстрап, Виев, или Реагуј . Можете трчати једна од следећих команди за стварање ауторских скела.
Покрените следећу наредбу у командној линији да бисте генерисали скене за ауторизацију помоћу Боотстрап .
php artisan ui bootstrap --auth
Покрените следећу наредбу у командној линији да бисте генерисали скене за ауторизацију помоћу Поглед .
php artisan ui vue --auth
Покрените следећу наредбу у командној линији да бисте генерисали скене за ауторизацију помоћу Реагуј .
php artisan ui react --auth
Корак 8: Покрените следеће две команде у командној линији да бисте инсталирали нову скелу нпм зависности .
npm install npm run dev
Корак 9: Отвори АутхСервицеПровидер.пхп датотека на Апп / Провидерс и измените постојећи код како је приказано доле:
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: Измените постојећи код у хоме.бладе.пхп датотека као што је приказано доле:
@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: Посетите следећу УРЛ адресу и она ће произвести излаз сличан доњем снимку екрана. Затим се пријавите у систем као администратор, менаџер и корисник један по један.
Белешка : Следеће УРЛ адресе могу се разликовати од ваших.
хттп: //аутхоризатион-туториал.тест/логин
- Администраторска пријава
Ако сте пријављени као админ , тада ће излаз бити сличан следећем снимку екрана.
- Пријава менаџера
Ако сте пријављени као управник , тада ће излаз бити сличан следећем снимку екрана.
- Улаз за кориснике
Ако сте пријављени као корисник , тада ће излаз бити сличан следећем снимку екрана.
питања за интервју са селеном постављана у компанијама
Слање е-поште у Ларавел
Шта је Маилтрап
Доступно је неколико бесплатних мрежних алата за тестирање е-поште у Ларавел-у и Маилтрап је једно такво средство. Маилтрап користи лажни СМТП сервер за тестирање е-поште. Прихвата е-пошту од локалног домаћина која омогућава програмеру или тестеру да тестира како ће се е-адресе делити пре него што их пошаље у стварне сандучиће.
Пример слања е-поште
Направимо једноставан пример користећи Маилтрап .
Корак 1: Покрените следећу команду у командној линији да бисте креирали пројекат Ларавел са именом емаил-туториал .
composer create-project --prefer-dist laravel/laravel:^7.0 email-tutorial
Корак 2: Посетите УРЛ и направите нови Маилтрап налог или се пријавите на Маилтрап налог ако га већ имате.
Корак 3: Након пријаве на Маилтрап налог,
# 1) Кликните на Демо Инбок .
#два) Идентификујте Корисничко име и Лозинка испод СМТП . Ово корисничко име и лозинка су јединствени и ми ћемо их користити у следећем кораку.
Белешка: Посетите УРЛ да бисте сазнали више о Маилтрап-у.
Корак 4: Отвори . енв датотеку и унесите Маилтрап корисничко име и лозинка.
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::get('/contact', 'ContactController@contact')->name('contact'); Route::post('/contact', 'ContactController@sendContactForm')->name('contact.send');
Корак 6: Покрените следећу команду у командној линији да бисте креирали ФилеУплоадЦонтроллер и измените постојећи код како је приказано у наставку.
пхп артисан маке: контролер ЦонтацтЦонтроллер
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: Покрените следећу команду у командној линији да бисте креирали ЦонтацтМаил класа. Ова наредба ће створити датотеку са именом ЦонтацтМаил.пхп у Апп / Маил именик.
php artisan make:mail ContactMail
Корак 8: Измените постојећи код у ЦонтацтМаил.пхп датотеку као што је приказано доле.
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 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
#два) Направите контакт-образац.бладе.пхп датотеку и додајте следећи код.
Name: {{ $data('name') }}
Subject: {{ $data('subject') }}
Message: {{ $data('message') }}
Корак 10: Посетите следећу УРЛ адресу и она ће произвести излаз сличан доњем снимку екрана.
Белешка : Следећи УРЛ се може разликовати од вашег.
хттп: //емаил-туториал.тест/цонтацт
Корак 11: Попуните образац и пошаљите.
Корак 12: Сада посетите свој Маилтрап рачун и проверите пријемно сандуче. У пријемном сандучету видећете нову поруку сличну снимку екрана испод.
Закључак
Ларавел отпремање датотека је једноставно, а програмер такође може поставити дозволе за Ларавел датотеку. Ларавел пружа једноставан начин постављања, преузимања и брисања података о сесији. Ларавел аутентификација помаже у идентификовању корисника док Ларавел ауторизација проверава да ли аутентификовани корисници имају дозволу за приступ траженим ресурсима.
Можемо користити алате као што је Маилтрап за тестирање е-поште пре него што их пошаљемо у стварне сандучиће.
Надамо се да вам је овај водич био користан! Надам се да ћемо се поново видети у следећем водичу где ћемо разговарати Ковачница Ларавел и колекције .
Срећно учење!
<< PREV Tutorial |. | СЛЕДЕЋА Лекција >>
Препоручено читање
- ПХП Ларавел Водич за почетнике: Шта је Ларавел Фрамеворк
- Ларавел Цоллецтион и Ларавел Форге Туториал
- База података Ларавел, миграције, елоквентан ОРМ и Тинкер
- Обрасци Ларавел и правила за валидацију са примером
- Дозволе за приступ Уник датотекама: Уник Цхмод, Цховн и Цхгрп
- Уник дозволе: Дозволе за датотеке у Унику са примерима
- Како отпремити датотеку помоћу Селениум Вебдривер - 3 методе
- Манипулација датотекама у Унику: Преглед система Уник датотека