Laravel - 从上传的文件中获取大小

lew*_*s4u 13 laravel

我用这个命令保存了一个文件

$newFile = [
            'event_id' => $event->id,
            'path' => $storePath
           ];

EventFile::create($newFile);
Run Code Online (Sandbox Code Playgroud)

我可以获得这样一个链接的文件路径:

Storage::disk('public')->url($file->path);
Run Code Online (Sandbox Code Playgroud)

但是没有关于文件大小的数据.如何在刀片视图中获取文件大小???

Art*_*vič 48

Laravel 5

$request->file('file')->getSize();
Run Code Online (Sandbox Code Playgroud)

Laravel 4

$request->file('file')->getClientSize(); // getClientSize() is deprecated in Laravel 5
Run Code Online (Sandbox Code Playgroud)

  • getClientSize()以字节为单位返回文件大小 (4认同)
  • 我想知道返回的整数用哪个单位表示,我的意思是kb、mb、位、字节? (3认同)

Sal*_*far 7

Storage Facade如果您已经存储/上传文件,则更简单的方法是使用

use Illuminate\Support\Facades\Storage;

public function get_size($file_path)
{
    return Storage::size($file_path);
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用的是S3Bucket,那么您可以像下面一样修改上述功能

use Illuminate\Support\Facades\Storage;

public function get_size($file_path)
{
    return Storage::disk('s3')->size($file_path);
}
Run Code Online (Sandbox Code Playgroud)

检查Laravel 文件存储