我正在尝试使我上传的图像可以公开访问。我已运行php artisan storage:link
,该链接将public/storage
链接到storage/app/public
。
因此,据我了解将文件保存到文件夹photo
时,我必须写:
$path = request()->file('photo')->store('public/photos');
如果我要保存此路径:
$data['photo'] = 'storage/' . $path;
我得到的路径保存为storage/public/photos/blah.jpg
然后我无法以domain.name/storage/public/photos/blah.jpg
的身份访问图像,因为完整路径竟然有两个public
-一个来自创建的链接,另一个我声明要保存在正确的位置文件夹。
我在做什么错了?
答案 0 :(得分:0)
这样存储文件。要使用symlink使文件公开可用,则需要将文件存储在 let arr = [{a: 'abc', b: 'cd'}, {a: 'abc', b: 'xyz'}, {a: 'abc',
b: 'mno'}];
let newObj = {};
let id = 123;
newObj[id] = arr;
console.log(newObj);
文件夹内或将子文件夹存储在app/public
内。
app/public
现在仅将request()->file('photo')->store(storage_path('app/public/photos'));
存储在数据库中,并像这样访问它
photos/blah.jpg