I'm using storage_path to save my images and I symbolic my storage folder to public_html

php artisan storage:link

在本地,一切正常,当我上传一张图片时,它会上传到存储文件夹中,链接会出现在public文件夹中,但由于我移动到live host和生产模式,我的图片会上传到存储文件夹中,但在我的public_html/storage中没有,我无法在前端获取它们.

Codes

/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;            
}

有什么 idea 吗?

推荐答案

SOLVED

Thanks for all your helps, I tried to run php artisan storage:link on my server and I found out that my server has disabled symlink for security reason.

所以我改变了我所有的图片上传功能,将图片上传到public文件夹,而不是storage文件夹,现在一切正常.

Laravel相关问答推荐

如何在使用Docker容器部署Laravel 8、9、10时处理SIGTERM信号,特别是与调度程序和工作进程相关的问题?

Laravel - 将变量从中间件传递到控制器/路由

如何处理 Laravel 的 SMTP 驱动程序中的自签名 TLS 证书?

在 Laravel 5 中添加新配置文件不起作用

.gitignore 不忽略文件夹

使用 Eloquent (Laravel) 在 Group By 之前排序

如何使用 Laravel 模型访问数据库视图?

Laravel - 排序的集合输出不是数组

这个上下文的流程应该是怎样的? (根据 Select 的付款方式,将处理付款的代码放在哪里?)

Laravel 5:完整性约束违规:1452 无法添加或更新子行:外键约束失败

加载模型的所有关系

Laravel:自定义或扩展通知 - 数据库模型

Filesystem.php 中的 ErrorException

判断输入是否来自控制台

Composer RuntimeException - 无法加载软件包 mews/purifier

Laravel 事件、监听器、作业(job)、队列之间的区别

如何在 Laravel Mix 中将公共路径更改为包含下划线的内容?

Laravel 检测手机/平板电脑并加载正确的视图

同一模型上的 Laravel 父/子关系

如何访问 Laravel 集合中的第 n 个项目?