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

解决Laravel FTP存储中的FileNotFoundException错误

Laravel FTP存储读取文件触发FileNotFoundException问题排查

问题描述

在Laravel项目中使用FTP存储时,触发Illuminate\Contracts\Filesystem\FileNotFoundException错误。需求是从FTP服务器读取图片文件,返回给前端JS同时附带FTP服务器链接。已确认数据库和FTP服务器中均存在目标图片文件,但仍无法读取FTP路径下的文件。

相关代码与配置

控制器代码

$explode = explode('#',$lampiran->lampiran_gambar);
foreach($explode as $row){
    if($row == null){
        $row1[] = 'null';
    }else{
        $row1[] = Storage::disk('ftp')->get('/lampiranSurat' . $row);
    }
}
if($pegawai_pejabat->jenis_jabatan_id == 1){
    return response()->json([
        'meta' => [
            'code' => 200,
            'status' => 'success',
            'message' => 'Data Ditemukan',
        ],
        'data_verifikasi' => $verifikasi,
        'lampiran_gambar' => $row1,
        'pegawai_verif'   => $pegawai_verif,
    ]);
}

filesystem配置(config/filesystems.php)

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

'ftp' => [
    'driver'   => 'ftp',
    'host'     => env('FTP_HOST'),
    'username' => env('FTP_USERNAME'),
    'password' => env('FTP_PASSWORD'),
    'root'     => '/web',
],

.env配置

FTP_HOST=exampleftpserver.com
FTP_USERNAME=userftp
FTP_PASSWORD=password123

排查与解决步骤

  • 检查路径拼接准确性:代码中拼接的路径是/lampiranSurat' . $row,结合FTP配置的root为/web,最终实际访问的FTP路径是/web/lampiranSurat[文件名]。需确认FTP服务器中图片是否存放在对应目录,同时注意$row是否包含多余的斜杠或大小写不匹配(FTP通常区分大小写)。可临时添加dd('/lampiranSurat' . $row)打印完整路径,对比FTP实际文件路径。
  • 验证FTP权限与连接:确认FTP账号拥有/web/lampiranSurat目录的读取权限,可添加测试代码验证目录/文件是否存在:
    $disk = Storage::disk('ftp');
    dd($disk->exists('/lampiranSurat' . $row)); // 检查单个文件是否存在
    
  • 修正逻辑适配需求:你的需求是返回FTP链接,而Storage::disk('ftp')->get()是读取文件二进制内容,完全不符合需求。改为生成可访问的FTP链接(注意:带账号密码的链接存在安全风险,建议改用后端代理或配置FTP的HTTP映射):
    $ftpBaseUrl = "ftp://" . env('FTP_USERNAME') . ":" . env('FTP_PASSWORD') . "@" . env('FTP_HOST');
    $row1[] = $ftpBaseUrl . '/web/lampiranSurat' . $row;
    
  • 清除配置缓存:执行php artisan config:clear确保.env中的FTP配置已正确加载,避免缓存导致的配置失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:01:00