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

时间:2019-04-30 13:16:08

标签: php laravel laravel-5 cpanel shared-hosting

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

但是我有一个小问题,因为没有显示上传的图像。

有人知道如何解决吗?

enter image description here

保存图片的代码

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

查看图片的代码

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

有人知道这会是什么吗?

3 个答案:

答案 0 :(得分:0)

尝试提交表单时遇到错误?上网浏览上传的图片时遇到404错误吗?听起来上传文件夹的权限不足,无法存储上传的图片。尝试将上传文件夹的权限设置为775。

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

答案 1 :(得分:0)

检查您上传的图片是否出现在/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函数到底存储在哪里:在公共还是在存储中:)

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

答案 2 :(得分:0)

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

<?php

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

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