我正在使用该模块Spatie laravel-medialibrary
来保存图像。
要将图像存储在 table 中media
,您需要调用如下方法toMediaCollection()
:
$item->addMedia()->toMediaCollection();
因此,该文件将被放置在默认文件夹中。
但是选择和保存图像来自现有文件,最初输出File
$files = collect(File::allFiles(public_path('/images')) );
...
return view('view', ['images' => $files]);
它们已经在文件夹中,选择和保存时,您不需要移动现有图像,而只需在表格中输入media
有关所选图像的条目。
这是必要的,因为图像可以位于子文件夹中,并且由于新保存,图像将移至默认文件夹,但您需要将图像保留在其文件夹中。这可以做到吗?
当面对您只需要向 Media 添加条目的事实时,出现了 2 个解决方案:
Media::find(*id*)->replicate()
;你改变它是必要的属性,你做->save()
。但是这种方法不适合我,因为它执行得很慢。$attrs = Media::find(*id*)->getAttributes()
,然后你也改变你需要的并去做DB::table('media')->insert($attrs)
。这种方法立竿见影。同时
path
,您指向文件所在的位置。