【问题标题】:Image in cPanel not being displayed. No problem in localhostcPanel 中的图像未显示。本地主机没问题
【发布时间】:2020-01-08 10:29:08
【问题描述】:

当我上传图片时无法移动到 public_html 目录,默认情况下它会创建一个公共文件夹并将照片上传到那里 图片上传代码

 protected function uploadImages($file)
    {

        $year = Carbon::now()->year;
        $imagePath = "/upload/images/{$year}/";
        $filename = $file->getClientOriginalName();

        $file = $file->move(public_path($imagePath) , $filename);

        $sizes = ["300" , "600" , "900"];
        $url['images'] = $this->resize($file->getRealPath() , $sizes , $imagePath , $filename);
        $url['thumb'] = $url['images'][$sizes[0]];

        return $url;
    }

    private function resize($path , $sizes , $imagePath , $filename)
    {
        $images['original'] = $imagePath . $filename;
        foreach ($sizes as $size) {
            $images[$size] = $imagePath . "{$size}_" . $filename;

            Image::make($path)->resize($size, null, function ($constraint) {
                $constraint->aspectRatio();
            })->save(public_path($images[$size]));
        }

        return $images;
    }

查看文件代码

 <td ><img src="{{ $week->images ['thumb'] }}" style="height: 40px"></td>

【问题讨论】:

  • 如果你保存的是绝对路径,那么试试asset($week->images ['thumb'])
  • 我尝试无法显示图片

标签: laravel


【解决方案1】:

根据您的 cpanel 结构,它会有所不同。 我假设您将您的项目(所有文件)移动到 public_html,所以如果您想在那里上传图片,您必须确保所有权限都正常。首先尝试检查上传的文件是否有 2 个场景:

  1. 文件已上传: 检查权限,看看它们是否都设置为 755 或 777。 检查您在数据库中的图像路径是否正确。

  2. 文件未上传 php 无法在您的 public_html 中创建目录。 所以首先尝试创建一个目录:

    如果 (!file_exists( public_path($imagePath) )) { mkdir('路径/到/目录', 0755, true); }

然后你可以在那里上传你的文件。

【讨论】:

  • 我将我的项目上传到了我刚刚将公共文件夹上传到 public_html 的主目录。上传照片时,照片未上传到 public_html 并在我的项目文件夹中创建一个名为 public 的新文件夹我在数据库中检查它没有问题
  • @EzatullahTabish 尝试自己设置路径,而不是使用 public_path。自己获取public_html/public 的绝对路径并将其设置为move() 函数
猜你喜欢
  • 1970-01-01
  • 2011-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-26
  • 1970-01-01
  • 2012-03-28
  • 2012-09-26
相关资源
最近更新 更多