4

我正在使用 Laravel Livewire 和 Spatie 媒体库,但我在他们的文档中都找不到有关如何执行此操作的任何有用信息。

我正在尝试这个,但它给了我错误

$this->menu->addMediaFromUrl($this->menu_image->temporaryUrl())->toMediaCollection('menu_image');

收到此错误 错误越来越

4

4 回答 4

4

对我来说,它是这样工作的:

public $uploadedItems;
    
public function updatedUploadedItems($uploadedFile)
{
    $item = Item::create();

    $item
        ->addMedia($uploadedFile->getRealPath())
        ->usingName($uploadedFile->getClientOriginalName())
        ->toMediaCollection('images');
}
于 2020-08-20T22:46:39.303 回答
3

由于我的存储和临时文件夹都在 s3 上,所以答案对我不起作用。
这是一个对我有用的

use Spatie\MediaLibrary\Support\RemoteFile;

...

return $gallery->addMedia($photo->getRealPath())
            ->setFile(new RemoteFile($photo->getRealPath(), 's3'))
            ->usingName($photo->getClientOriginalName())
            ->toMediaCollectionOnCloudDisk('default');

于 2021-04-23T12:03:34.447 回答
1

这是测试后对我有用的唯一方法

      $this->menu
           ->addMediaFromString($this->menu_image->get())
           ->usingFileName($this->menu_image->getFilename())
           ->toMediaCollection('menu_image');
于 2020-08-18T00:34:52.130 回答
0

我已经尝试了上述所有选项,但似乎没有一个对我有用,所以我深入挖掘,这是对我有用的解决方案。它更像是一个黑客,但它对我有用。

$this->lecture
      ->addMediaFromDisk('livewire-tmp/'.$this->lectureVideo->getFilename())
      ->toMediaCollection();

也许它与工作环境有关,但 getRealPath() 会抛出文件未找到异常。

于 2021-07-10T22:45:40.567 回答