阅读(5006) (7)

Laravel 8 自动流式传输

2021-07-02 16:44:07 更新

您可以使用 putFileputFileAs 方法来让 Laravel 自动将给定的文件流式传输到您的存储位置。该方法接收一个 Illuminate\Http\FileIlluminate\Http\UploadedFile 实例并自动将文件流式传输到您想要的位置:

use Illuminate\Http\File;
use Illuminate\Support\Facades\Storage;

// 自动为文件名生成唯一 ID...
Storage::putFile('photos', new File('/path/to/photo'));

// 手动指定文件名...
Storage::putFileAs('photos', new File('/path/to/photo'), 'photo.jpg'); 

关于 putFile 方法,有一些重点需要注意。请注意我们仅仅指定了目录名。默认情况下, putFile 方法将生成唯一的 ID 并将其作为文件名。文件的扩展名则是根据文件的 MIME 类型来进行判断。putFile 方法会返回文件的路径,您可以将其和生成的文件名存储到数据库中。

putFileputFileAs 方法接收一个参数用来指定存储文件的「可见性」。当您将文件存储到诸如 S3 的云盘上,并且想让其能够公开访问,此时,此举(指定存储文件的可见性)就很有帮助:

Storage::putFile('photos', new File('/path/to/photo'), 'public');