繁体   English   中英

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

[英]Handling File Upload in Laravel's Controller

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

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

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

检索上传的文件

您可以使用文件方法或使用动态属性从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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM