php 使用空间/媒体库,如何重命名上传文件的集合?

epggiuax  于 2023-02-28  发布在  PHP
关注(0)|答案(2)|浏览(97)

我想重命名一组上传的文件,但是当我使用addAllMediaFromRequest()时,我无法从文件中检索信息。
在本例中;我需要知道文件扩展名才能重命名文件。

$files = $post->addAllMediaFromRequest();

$files->each(function (FileAdder $file) {
    $file->usingFileName(Str::random(16) . '.jpg')  // What if it's a png?
         ->toMediaCollection();
});
lc8prwob

lc8prwob1#

要在laravel中获取文件扩展名:

$request->file('photo')->extension()

要创建新文件名:

$newFileName = Str::random(20) .'.'.$request->file('photo')->extension();

别忘了导入Str类。
那么你可以在存储之前重命名上传的文件

$item->addMedia($request->photo)->usingFileName($newFileName)->toMediaCollection('photo');

Laravel v9测试代码

yiytaume

yiytaume2#

可以使用toMediaCollection("media_collection_name")轻松完成
在您代码中:

$files = $post->addAllMediaFromRequest(); 
$files->each(function (FileAdder $file) {
    $ext  = $file->extension();//this will get your file extension
    $file->usingFileName(Str::random(16) . '.'.$ext)
         ->toMediaCollection("media_collection_name");
});

相关问题