Laravel - 文件上传
在 Laravel 中上传文件非常简单。我们需要做的就是创建一个视图文件,用户可以在其中选择要上传的文件,以及一个控制器,上传的文件将在其中进行处理。
在视图文件中,我们需要通过添加以下代码行来生成文件输入。
Form::file('file_name');
在 Form::open() 中,我们需要添加 'files'=>'true',如下所示。这便于将表单分多个部分上传。
Form::open(array('url' => '/uploadfile','files'=>'true'));
示例
步骤 1 − 创建一个名为 resources/views/uploadfile.php 的视图文件,并将以下代码复制到该文件中。
resources/views/uploadfile.php
<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 的控制器。
php artisan make:controller UploadFileController --plain
步骤 3 − 成功执行后,您将收到以下输出 −
步骤 4 − 将以下代码复制到
app/Http/Controllers/UploadFileController.php 文件中。
app/Http/Controllers/UploadFileController.php
<?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->getClientOriginalName(); echo '<br>'; //显示文件扩展名 echo '文件扩展名:'.$file->getClientOriginalExtension(); echo '<br>'; //显示文件实际路径 echo '文件实际路径:'.$file->getRealPath(); echo '<br>'; //显示文件大小 echo '文件大小:'.$file->getSize(); echo '<br>'; //显示文件 MIME 类型 echo '文件 MIME 类型:'.$file->getMimeType(); //移动已上传的文件 $destinationPath = 'uploads'; $文件->移动($destinationPath,$文件->getClientOriginalName()); } }
步骤 5 − 在 app/Http/routes.php 中添加以下几行。
app/Http/routes.php
Route::get('/uploadfile','UploadFileController@index'); Route::post('/uploadfile','UploadFileController@showUploadFile');
步骤 6 − 访问以下 URL 以测试上传文件功能。
http://localhost:8000/uploadfile
步骤 7 −您将收到如下图所示的提示。