Laravel 8 自动流式传输
您可以使用 putFile
或 putFileAs
方法来让 Laravel 自动将给定的文件流式传输到您的存储位置。该方法接收一个 Illuminate\Http\File
或 Illuminate\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
方法会返回文件的路径,您可以将其和生成的文件名存储到数据库中。
putFile
和 putFileAs
方法接收一个参数用来指定存储文件的「可见性」。当您将文件存储到诸如 S3 的云盘上,并且想让其能够公开访问,此时,此举(指定存储文件的可见性)就很有帮助:
Storage::putFile('photos', new File('/path/to/photo'), 'public');