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

Laravel9后台无法显示用户上传的付款凭证图片求助

问题排查与修复方案

1. 文件系统配置错误

你的public磁盘根目录配置不符合Laravel规范,默认public磁盘应指向storage/app/public(而非public/app/public),修改config/filesystems.php:

'public' => [
    'driver' => 'local',
    'root' => storage_path('app/public'), // 修正此处路径
    'url' => env('APP_URL').'/storage',
    'visibility' => 'public',
    'throw' => true,
],

2. 上传路径冗余重复

原上传代码的store('public/app/public')会导致路径嵌套重复(最终路径为storage/app/public/public/app/public/xxx.jpg),完全冗余。改为指定存储到public磁盘的子目录(比如专门存付款凭证的payment_proofs):

// 替换原上传路径代码
$path = $proof->store('payment_proofs', 'public'); 

修改后存储的路径会是payment_proofs/xxx.jpg,实际文件存放在storage/app/public/payment_proofs/下。

3. 确认存储符号链接存在

Laravel需要通过符号链接将storage/app/public映射到public/storage,才能通过Web访问存储的文件。执行以下Artisan命令:

php artisan storage:link

如果提示链接已存在,可先删除public/storage目录再重新执行命令。

4. 验证视图路径生成

确保视图中Storage::url()接收的是正确的相对路径,比如存储的payment_proofs/xxx.jpg,Storage::url($request->payment_proof_path)会自动生成/storage/payment_proofs/xxx.jpg的可访问路径。

额外检查点

  • 查看数据库payment_proof_path字段的值,确认存储的路径无重复前缀
  • 检查服务器storage/app/public/payment_proofs目录是否存在,文件是否上传成功,且Web服务器拥有该目录的读取权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:40:29