如何解决如何使用Laravel Livewire和Spatie媒体库上传图像?
我正在使用Laravel Livewire和Spatie媒体库,但他们的两个文档都没有找到有关此操作的帮助。
我尝试这样做,但是给了我错误
$this->menu->addMediaFromUrl($this->menu_image->temporaryUrl())->toMediaCollection('menu_image');
解决方法
对我来说,它是这样的:
public $uploadedItems;
public function updatedUploadedItems($uploadedFile)
{
$item = Item::create();
$item
->addMedia($uploadedFile->getRealPath())
->usingName($uploadedFile->getClientOriginalName())
->toMediaCollection('images');
}
,
由于我的存储和临时文件夹都在 s3 上,所以答案对我不起作用。
这是一个对我有用的
use Spatie\MediaLibrary\Support\RemoteFile;
...
return $gallery->addMedia($photo->getRealPath())
->setFile(new RemoteFile($photo->getRealPath(),'s3'))
->usingName($photo->getClientOriginalName())
->toMediaCollectionOnCloudDisk('default');
,
这是测试后对我有用的唯一方法
$this->menu
->addMediaFromString($this->menu_image->get())
->usingFileName($this->menu_image->getFilename())
->toMediaCollection('menu_image');
,
我已经尝试了上述所有选项,但似乎没有一个对我有用,所以我挖得更深,这是对我有用的解决方案。 这更像是一种黑客行为,但对我有用。
$this->lecture
->addMediaFromDisk('livewire-tmp/'.$this->lectureVideo->getFilename())
->toMediaCollection();
可能与工作环境有关,但 getRealPath() 抛出文件未找到异常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。