【问题标题】:Handling File Upload in Laravel's Controller在 Laravel 控制器中处理文件上传
【发布时间】:2016-10-14 02:18:45
【问题描述】:

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

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

任何人在此之前有一个想法,将不胜感激。谢谢!

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    检索上传的文件

    您可以使用 file 方法或使用动态属性从 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 类还包含用于访问文件的完全限定路径及其扩展名的方法。 extension 方法将尝试根据文件的内容猜测文件的扩展名。此扩展可能与客户端提供的扩展不同:

    $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());
    

    【讨论】:

    • 所以我假设 ->file('photo') 是 ->file('FileInput') 在我这里给出的例子中..正确吗?..“photo”是 名称属性值..对吗?
    • 顺便问一下,你知道如何使用 Laravel 请求调用 $_SERVER['HTTP_X_REQUESTED_WITH'] 吗?
    • @victor,不确定。抱歉
    • 是 $file->getClientOriginalName();给你“sample.csv”文件名或只是没有扩展名的名字??
    • @victor。只需打印使用 print_r($file->getClientOriginalName());.尝试打印每个步骤
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 2020-04-09
    • 2020-05-12
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    相关资源
    最近更新 更多