Laravel 中的 UploadedFile 和 File

UploadedFile

Laravel通过 Input::file 可获取上传的多张图片,返回类型是 Symfony\Component\HttpFoundation\File\UploadedFile 数组。

$files = \Input::file('goods_pics');
print_r($files);

Array
(
    [0] => Illuminate\Http\UploadedFile Object
        (
            [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
            [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => test1.jpg
            [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg
            [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 118499
            [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
            [pathName:SplFileInfo:private] => C:\Users\yezhou\AppData\Local\Temp\phpBE09.tmp
            [fileName:SplFileInfo:private] => phpBE09.tmp
        )

    [1] => Illuminate\Http\UploadedFile Object
        (
            [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
            [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => test2.jpg
            [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg
            [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 118499
            [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
            [pathName:SplFileInfo:private] => C:\Users\yezhou\AppData\Local\Temp\phpBE0A.tmp
            [fileName:SplFileInfo:private] => phpBE0A.tmp
        )

)

Symfony\Component\HttpFoundation\File\UploadedFile API:http://api.symfony.com/master/Symfony/Component/HttpFoundation/File/UploadedFile.html

使用示例:

foreach ($files as $file) {
    if($file -> isValid()) {
        echo $file->getClientMimeType();  //获取原始文件Mime类型
        echo $file->getClientOriginalName();  //获取原始文件名称
        echo $file->getPathname();  //获取文件路径
    }
}

File

执行 UploadedFile 的 move 方法,即可得到 Symfony\Component\HttpFoundation\File\File 对象。

$realFile = $file->move($destPath, $file->getClientOriginalName());
print_r($realFile);

Symfony\Component\HttpFoundation\File\File Object
(
    [pathName:SplFileInfo:private] => C:\Server\www\restserver\public\tmp\test1.jpg
    [fileName:SplFileInfo:private] => test1.jpg
)
Symfony\Component\HttpFoundation\File\File Object
(
    [pathName:SplFileInfo:private] => C:\Server\www\restserver\public\tmp\test2.jpg
    [:SplFileInfo:private] => test2.jpg
)

Symfony\Component\HttpFoundation\File\File API:http://api.symfony.com/master/Symfony/Component/HttpFoundation/File/File.html

其继承自 SplFileInfo类,详见:http://php.net/SplFileInfo

使用示例:

echo $realFile->getMimeType(); //获取文件Mime类型。若出现问题:Unable to guess the mime type as no guessers are available (Did you enable the php_fileinfo extension?),则 php.ini 开启 extension=php_fileinfo.dll
echo $realFile->getPathName(); //获取文件路径
echo $realFile->getFileName(); //获取文件名
echo $realFile->getType(); //获取文件类型
上一篇 Laravel count的使用
下一篇 Magento版本查看
目录
文章列表
1 玩转Redis - 如何高效访问Redis中的海量数据
玩转Redis - 如何高效访问Redis中的海量数据
2
使用pm2部署vue项目
使用pm2部署vue项目
3
Android 10(Api 29)新特性适配 - 分区存储
Android 10(Api 29)新特性适配 - 分区存储
4
企业微信Java API接入
企业微信Java API接入
5
Spring Boot集成EventBus(Guava方式)
Spring Boot集成EventBus(Guava方式)
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。