如何通过laravel在vue组件中显示图像?

cetgtptt  于 2023-05-18  发布在  Vue.js
关注(0)|答案(2)|浏览(132)

所以我用Laravel保存了一个图像,并希望用vue在另一个页面上显示它。
我把整个对象作为 prop 传递给vue,这样它就可以访问它的名字了。
问题是当我这么做的时候

$img = $request->file('image')->store('public/product_images');

当然,图像被保存到storage/app/public/product_images中,但它在数据库中存储为public/product_images/UZ9bLK65CwOWDoB002rt61y1PyldZ4iEWpKh5HHl.jpg,并且可以通过http://localhost:8000/storage/product_images/UZ9bLK65CwOWDoB002rt61y1PyldZ4iEWpKh5HHl.jpg访问。
所以基本上vue组件获取public/product_images/UZ9bLK65CwOWDoB002rt61y1PyldZ4iEWpKh5HHl.jpg作为镜像(product.image),这样它就无法访问了。
我该如何将图片链接传递给vue组件并显示出来呢?

zaq34kh6

zaq34kh61#

您可以通过访问器获得文件的完整路径,或者在通过控制器访问时手动附加完整路径。下面的代码将返回整个路径:

Storage::url($filePath);

$filePath是存储文件时返回的路径。
那么,您的代码将是:

$storagePath = $request->file('image')->store('public/product_images');
$filePath = Storage::url($storagePath);
3yhwsihp

3yhwsihp2#

30分钟前我意识到我搞砸了。
而不是

$img = $request->file('image')->store('public/product_images');

我应该用的

$img = $request->file('image')->store('product_images', 'public);

这样就行了

相关问题