Добавим страницу загрузки form.blade.php (\resources\views)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<html> <title>Import</title> <body> <h1>Загрузка файлов</h1> <form action="{{ URL::to('/upload') }}" enctype="multipart/form-data" method="post"> <label for="file">Файл: <input type="file" name="file" value=""></label> <br/> <input type="hidden" name="_token" value="{{ csrf_token() }}"> <button type="submit">Отправить</button> </form> </body> </html> |
Добавим контроллер для загрузки файлов(в нем будет 2 функции. вывод формы и загрузка файла).
1 |
php artisan make:controller UploadController |
Добавим роутеры \routes\web.php
1 2 3 4 |
// upload form Route::get('/', 'UploadController@store'); // action upload Route::post('/upload', 'UploadController@upload'); |
Добавим в контроллер функцию store для отображения формы, а так же функцию upload для загрузки файла.
Предоставлю полный код класса
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; class UploadController extends Controller { public function store() { return view("form"); } public function upload(Request $request) { // загрузим и получим ссылку на файл $file_path = $request->file('file')->store('public'); dd($file_path); /* дополнительно */ // полный url файла // Storage::url($csv) // удаление файла // Storage::delete($csv); // более подробнее читайте тут: // https://laravel.com/docs/5.7/filesystem } catch (\Exception $e) { echo 'Произошла ошибка! ' . $e->getMessage(); } } } |
Для того что бы файл был доступен по ссылке, нужно выполнить команду:
1 2 |
// php artisan storage:link |
Дополнительно: https://laravel.com/docs/5.7/filesystem
Комментарии закрыты!