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');
//Display File Name
echo 'File Name: '.file->getClientOriginalName();
echo '<br>';
//Display File Extension
echo 'File Extension: '.file->getClientOriginalExtension();
echo '<br>';
//Display File Real Path
echo 'File Real Path: '.file->getRealPath();
echo '<br>';
//Display File Size
echo 'File Size: '.file->getSize();
echo '<br>';
//Display File Mime Type
echo 'File Mime Type: '.file->getMimeType();
//Move Uploaded File
destinationPath = 'uploads';file->move(destinationPath,file->getClientOriginalName());
}
}
步骤5 − 将以下行添加到 app/Http/routes.php 中。
app/Http/routes.php
Route::get('/uploadfile','UploadFileController@index');
Route::post('/uploadfile','UploadFileController@showUploadFile');
步骤6 - 访问以下网址测试上传文件功能。
http://localhost:8000/uploadfile
步骤7 - 您将收到如下图所示的提示。