От автора: в Laravel загрузка файлов реализуется очень просто. Все, что нам нужно сделать, это создать файл представления, в котором пользователь может выбрать файл для загрузки и контроллер, в который будут загружаться файлы.
В файле представления нам нужно сгенерировать элемент управления для загрузки файла, добавив следующую строку кода.
Form::file(‘file_name’);
В Form::open() нам нужно добавить ‘files’=>’true’, как показано ниже. Это позволит форме загружать файлы по частям.
1 |
Form::open(array('url' => '/uploadfile','files'=>'true')); |
Пример
Шаг 1. Создайте файл представления с именем resources/views/uploadfile.php, и скопируйте в этот файл следующий код.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<html> <body> <?php echo Form::open(array('url' => '/uploadfile','files'=>'true')); echo 'Select the file to upload.'; echo Form::file('image'); echo Form::submit('Upload File'); echo Form::close(); ?> </body> </html> |
Шаг 2 — Создайте контроллер с именем UploadFileController , выполнив следующую команду.
1 |
php artisan make:controller UploadFileController --plain |
Шаг 3 — После выполнения команды вы получите следующий результат:
Шаг 4 — Скопируйте в файл app/Http/Controllers/UploadFileController.php следующий код.
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 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; class UploadFileController extends Controller { public function index(){ return view('uploadfile'); } public function showUploadFile(Request $request){ $file = $request->file('image'); // отображаем имя файла echo 'File Name: '.$file->getClientOriginalName(); echo '<br>'; //отображаем расширение файла echo 'File Extension: '.$file->getClientOriginalExtension(); echo '<br>'; //отображаем фактический путь к файлу echo 'File Real Path: '.$file->getRealPath(); echo '<br>'; //отображаем размер файла echo 'File Size: '.$file->getSize(); echo '<br>'; //отображаем Mime-тип файла echo 'File Mime Type: '.$file->getMimeType(); //перемещаем загруженный файл $destinationPath = 'uploads'; $file->move($destinationPath,$file->getClientOriginalName()); } } |
Шаг 5 — Добавьте в файл app/Http/routes.php следующие строки.
1 2 |
Route::get('/uploadfile','UploadFileController@index'); Route::post('/uploadfile','UploadFileController@showUploadFile'); |
Шаг 6 – Перейдите по следующему URL-адресу, чтобы проверить функцию загрузки файлов. //localhost:8000/uploadfile
Шаг 7 — Вы увидите на экране сообщение, как показано на следующем рисунке.
Источник: //www.tutorialspoint.com/
Редакция: Команда webformyself.