图像不会上传到Laravel Project中的public_html文件夹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像不会上传到Laravel Project中的public_html文件夹相关的知识,希望对你有一定的参考价值。

当我尝试将图像上传到我的网站时,它存储在我的存储文件夹中,但是,符号链接不起作用,因此它不会将其保存在我的public_html文件夹中。我已经尝试使用自定义符号链接php文件,但它似乎没有做任何事情。

我的symlinkcreate.php文件

<?php
symlink('/home/jackdeaz/nscraft/storage/app/public', '/home/jackdeaz/public_html/storage');

我的Filesystems.php文件

'default' => env('FILESYSTEM_DRIVER', 'local'),

'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],

        'public' => [
            'driver' => 'local',
            'root' => storage_path('app'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],

        's3' => [
            'driver' => 's3',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'region' => env('AWS_DEFAULT_REGION'),
            'bucket' => env('AWS_BUCKET'),
            'url' => env('AWS_URL'),
        ],

    ],

这就是我上传图片的方式

$request->file('image_url')->store('public/img/products');

任何帮助将不胜感激!

答案

正如@MorganTouvereyQuilling here所解释的那样:

  1. 查找Web服务器用户名。如果您使用的是Apache,请使用该命令行:
ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d  -f1
  1. 授予Web服务器权限(chmod,chown)

注意:执行666或777的chmod就足够了,但是不安全。授予666或777权限将允许访问“其他人”。最好是更准确,并给予你和Apache的权限。

另一答案

这可能肯定是权限问题。您的(a)Web服务器(例如nginx),PHP进程管理器(php-fpm)正在使用哪些权限。理想情况下,这些应该是相同的,并且他们试图存储文件的导演应至少具有相同的组权限(例如775)。

以上是关于图像不会上传到Laravel Project中的public_html文件夹的主要内容,如果未能解决你的问题,请参考以下文章

当图像已上传到文件夹中时,如何解决 laravel 中的“文件不存在或不可读”

将 Laravel 5 上传到服务器子文件夹

Laravel:如何通过 API postman 上传图像并将其保存到数据库(phpmyadmin)

Laravel文档阅读笔记-How to deploy Laravel 8 project on Cpanel shared hosting

Laravel文档阅读笔记-How to deploy Laravel 8 project on Cpanel shared hosting

ckeditor 5中的图像上传不适用于laravel 8