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

从GitHub克隆项目后图片上传路径异常:未存入storage/public而存至C:\xampp\tmp

问题解决:图片未存入指定目录的修复方案

核心问题分析

你的代码仅完成了表单验证,但没有执行文件的存储逻辑,直接将包含临时文件路径的验证数据存入数据库,导致图片停留在XAMPP的tmp临时目录。

修复步骤

1. 修正控制器代码,启用文件存储逻辑

取消注释文件存储的代码,同时统一变量名拼写:

public function store(Request $request)
{
    $validatedData = $request->validate([
        'pembelian_id' => '',
        'pconfirm_pic' => 'image|file|max:5087'
    ]);

    // 执行文件存储,指定public磁盘和payment_confirmation目录
    if ($request->hasFile('pconfirm_pic')) {
        $validatedData['pconfirm_pic'] = $request->file('pconfirm_pic')->store('payment_confirmation','public');
    }
    
    Payconfirm::create($validatedData);
    return redirect('/user/purchase/?status_pembayaran=1');
}

2. 确认文件系统配置

检查项目根目录的.env文件,确保文件系统磁盘设置为public:

FILESYSTEM_DISK=public

3. 生成存储目录的符号链接(关键步骤)

Laravel的storage/public目录需要通过符号链接映射到项目根目录的public/storage,才能让前端正常访问图片。在终端执行以下Artisan命令:

php artisan storage:link

补充说明

  • 执行store('payment_confirmation','public')后,图片会被移动到storage/app/public/payment_confirmation目录下
  • 数据库中存储的是相对路径(如payment_confirmation/xxx.jpg),可以通过asset('storage/'.$path)生成前端访问链接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:10:37