【问题标题】:how do i solve the image upload issue of laravel while hosting it on shared hosting?在共享主机上托管时如何解决 laravel 的图像上传问题?
【发布时间】:2020-04-02 03:36:22
【问题描述】:

我正在使用托管程序来部署我的 laravel 项目我将所有文件上传到 public_html 文件夹中,然后进行了应用程序工作所需的所有必要更改。该应用程序似乎工作得很好但是当用户尝试上传图像,图像存储在 storage/app/public/avatar 文件夹和 public/storage/avatar 文件夹中,因为我使用符号链接链接这两个文件夹,但用户无法查看照片。这就是我回忆照片的方式

div class="profile-avatar" style="width: 400px;height:500px;border-radius: 0%;background-image: url('@if(Auth::user()->avatar == "avatar.png") {{ url("/imgs/".Auth::user()->avatar) }} @else {{ url("/storage/avatar/".Auth::user()->头像) }} @endif');"

请帮我解决这个问题

【问题讨论】:

    标签: laravel shared-hosting


    【解决方案1】:

    由于您没有 ssh 访问权限以在 shell 中运行某些命令, 上传图片时试试这个

    1.在此处存储图像: public_path() 。 'img/filename.jpg'*

    2.将“img/filename.jpg”保存在数据库中

    3.使用 url('img/filename.jpg')

    生成图片 URL

    // 输出http://www.your-domain.com/img/filename.jpg

    如果您可以管理 shell 访问,那么试试这个:

    删除您当前在 storage 文件夹中创建的 app/public/avatar 目录。 还要删除 public 内的存储文件夹!

    之后通过 ssh cli,cd 到你的 laravel 项目文件夹并通过以下命令创建一个符号链接

    ln -sr storage public/storage
    
    

    希望它能解决您的问题。我遇到了同样的问题,我的问题通过第二种方法得到了修复(我可以通过 ssh 访问我的服务器)。

    【讨论】:

    • 我实际上没有使用任何类型的外壳
    • 检查您的 filesystem.php 确保您使用 public_path() 作为您用于上传照片的驱动程序。等等我正在编辑我的答案
    • 我可以访问 ssh。现在从一开始请告诉我我在哪里上传我的所有文件到主机上,因为我删除了所有文件以便从 0 开始
    • 在上面的问题中,我提供了我的 laravel 文件的外观,在另一张图片中,我展示了我的主机文件管理器的外观。请帮助我知道在哪里上传所有文件,即在 public_html 文件或根文件中,以便使用 ssh cli 执行存储链接命令
    • 通过 ssh 进入你的 laravel 项目文件夹并执行我给出的上述命令。我假设你已经用你的 laravel_project/public 文件夹和你的 public_html 创建了一个符号链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 2016-10-07
    • 1970-01-01
    相关资源
    最近更新 更多