Laravel 不显示上传的图片(共享主机)

Laravel doesn't show uploaded images (Shared Host)

我有一个共享主机,我只能通过 Cpanel 访问。

但是我有一个小问题,因为上传的图片没有出现。

有谁知道怎么解决吗?

保存图片的代码

$request->picture->storeAs('public/upload/authors', $filename);

查看图片的代码

<img src="{{ asset('storage/upload/authors/'.$author->picture.'') }}" width="75" height="75">

有谁知道它会是什么吗??

您在尝试提交表单时遇到错误吗?当您浏览到所谓的上传图片时,您是否收到 404 错误?这听起来像是上传文件夹没有足够的权限来存储上传的图片。尝试将上传文件夹的权限设置为775。

关于 CHMOD 的更多信息:http://www.stadtaus.com/en/tutorials/chmod-ftp-file-permissions.php

检查一下,如果您上传的图片出现在 /public/upload/authors 目录下,请使用:

<img src="{{ asset('upload/authors/'.$author->picture.'') }}" width="75" height="75">

如果您上传的图片出现在 /storage/app/public/upload/authors 目录下,请使用:

<img src="{{ Storage::get('public/upload/authors/'.$author->picture.'') }}" width="75" height="75">

P.S。抱歉,我不记得 storeAs 函数到底存储在哪里:在 public 或存储 :)

注意! asset() 函数正在从 app/public 文件夹获取文件 url,但是 Storage::get() 正在从 app/storage/app 文件夹

获取文件

我这样解决了我的问题。在 public 文件夹中,我使用以下代码创建了一个名为 symlink.php 的文件。

<?php

symlink('/home/server_name/project_app_folder/storage/app/public', 
    '/home/server_name/public_html/storage');

我在 public_html 中删除了文件夹 storage,并在 public_html 中上传了我的 .php 文件。然后我运行代码通过域访问域example.com/symlink.php。最后,服务器创建一个链接到项目存储文件夹的文件夹。