You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel部署Hostinger后图片无法上传至public_html文件夹

Laravel部署Hostinger后文件上传路径错误解决方法

问题分析

你的Laravel项目本地能正常上传文件到public文件夹,但部署到Hostinger后,文件未存入服务器的public_html目录,核心问题出在filesystems.php的磁盘配置与Hostinger目录结构不匹配:

  1. 默认磁盘为local,其root指向项目的storage目录,导致文件直接存在storage下而非公开访问目录
  2. public磁盘的root配置错误,storage_path('/public_html')会指向项目storage文件夹下的public_html子目录,而非Hostinger的web根目录public_html
  3. 未正确映射Laravel的public目录与Hostinger的public_html目录

解决方案

步骤1:调整filesystems.php磁盘配置

修改配置文件中的磁盘定义,确保路径匹配Hostinger的目录结构:

'default' => env('FILESYSTEM_DISK', 'public'), // 将默认磁盘改为public

'disks' => [
    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'), // 修正local磁盘默认路径为storage/app
    ],

    'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'), // 标准Laravel公开存储路径
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],

    // 保留s3相关配置...

    'public_uploads' => [
        'driver' => 'local',
        'root'   => public_path(), // 若需直接上传到public_html,此配置生效(需确保public_path指向正确)
    ],
],

'links' => [
    public_path('storage') => storage_path('app/public'), // 软链配置,用于访问storage/app/public下的文件
],

步骤2:映射Laravel的public目录到Hostinger的public_html

Hostinger的web根目录是public_html,需确保Laravel的public_path()指向该目录:

  1. 推荐将Laravel项目核心文件放在public_html的上级目录(避免.env等敏感文件暴露),在bootstrap/app.php末尾添加代码:
$app->bind('path.public', function() {
    return __DIR__.'/../public_html';
});
  1. 将Laravel项目public目录下的所有文件(包括.htaccess)复制到Hostinger的public_html目录

步骤3:创建存储软链

在Hostinger的终端中运行Artisan命令,创建public_html/storage到storage/app/public的软链:

php artisan storage:link

步骤4:验证上传逻辑

确保你的文件上传代码使用正确的磁盘,例如:

// 使用public磁盘上传
$path = $request->file('file')->store('uploads', 'public');

// 或直接使用默认磁盘(已设为public)
$path = $request->file('file')->store('uploads');

配置完成后,上传的文件会存入storage/app/public/uploads,通过软链public_html/storage/uploads可正常访问,完全适配Hostinger的目录结构。

内容的提问来源于stack exchange,提问作者Iscariota

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 07:05:32