我正在使用 storage_path
来保存我的图像,并将我的存储文件夹符号化到 public_html
php artisan storage:link
在本地一切正常,当我上传图像时,它将上传到存储文件夹中,并且它的链接将出现在 public
文件夹中,但由于我移至实时主机和生产模式,我的图像将上传到存储文件夹中但我的 public_html/storage
中没有任何内容,而且我无法将它们放入我的前端。
代码
/config/filesystems.php
'public' => [
'driver' => 'local',
'root' => storage_path('app/public/'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
.env
FILESYSTEM_DRIVER=public
controller sample
if ($request->hasFile('image')) {
$image = $request->file('image');
$filename = 'page' . '-' . time() . '.' . $image->getClientOriginalExtension();
$location = storage_path('app/public/images/' . $filename);
Image::make($image)->resize(1200, 600)->save($location);
if(!empty($page->image)){
Storage::delete('images/' . $page->image);
}
$page->image = $filename;
}
任何想法?
原文由 mafortis 发布,翻译遵循 CC BY-SA 4.0 许可协议
解决了
感谢您的所有帮助,我尝试在我的服务器上运行
php artisan storage:link
并且我发现我的服务器已禁用symlink
出于安全原因。因此,我已将所有图像上传功能更改为将图像上传到我的
public
文件夹而不是storage
文件夹中,现在一切正常。