在Laravel控制器中处理文件上传

时间:2016-10-14 02:18:45

标签: php laravel

如何使用Laravel的Request对象使用以下PHP $ _FILES? (我使用的是Laravel 5.3)

$_FILES["FileInput"]
$_FILES["FileInput"]["size"]
$_FILES['FileInput']['type']
$_FILES['FileInput']['name']
$_FILES['FileInput']['tmp_name']

任何人都有这样的想法,之前会非常感激。谢谢!

1 个答案:

答案 0 :(得分:12)

检索上传的文件

您可以使用文件方法或使用动态属性从Illuminate \ Http \ Request实例访问上传的文件。 file方法返回Illuminate \ Http \ UploadedFile类的一个实例,它扩展了PHP SplFileInfo类,并提供了各种与文件交互的方法:

$file = $request->file('photo');

$file = $request->photo;

您可以使用hasFile方法确定请求中是否存在文件:

if ($request->hasFile('photo')) {
    //
}

验证成功上传

除了检查文件是否存在外,您还可以验证通过isValid方法上传文件没有问题:

if ($request->file('photo')->isValid()) {
    //
}

文件路径&扩展

UploadedFile类还包含用于访问文件的完全限定路径及其扩展名的方法。扩展方法将尝试根据文件的内容猜测文件的扩展名。此扩展可能与客户端提供的扩展不同:

$path = $request->photo->path();

$extension = $request->photo->extension();

获取文件名

$filename= $request->photo->getClientOriginalName();

价:https://laravel.com/docs/5.3/requests

实施例

$file = $request->file('photo');

//File Name
$file->getClientOriginalName();

//Display File Extension
$file->getClientOriginalExtension();

//Display File Real Path
$file->getRealPath();

//Display File Size
$file->getSize();

//Display File Mime Type
$file->getMimeType();

//Move Uploaded File
$destinationPath = 'uploads';
$file->move($destinationPath,$file->getClientOriginalName());