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

Laravel 9图片上传时数据库存储临时文件路径异常求助

Laravel 9图片上传数据库存储临时路径问题修复

问题现象

执行图片上传操作时,数据库中存储的是PHP临时文件路径(如C:\XAMPP\tmp\php6CB6.tmp),而非预期的图片存储路径。

错误代码分析

原代码存在三处关键错误:

  • 验证规则语法错误:image字段的验证规则被错误拆分,导致部分规则未生效
  • 存储路径拼接错误:$save_url缺少目录分隔符,生成的路径格式不符合预期
  • 模型字段赋值错误:误将文件对象变量$image作为模型字段名,导致存入临时文件路径

修复后的完整代码

$request->validate([
    'title' => 'required|unique:latests|max:255',
    'description' => 'required',
    'image' => 'required|mimes:jpg,png,jpeg|max:5048' // 修复验证规则格式
]);

$save_url = '';
if($request->file('image')){
    $image = $request->file('image');
    $image_gen = hexdec(uniqid()). '.'. $image->getClientOriginalExtension();

    // 保存图片到指定路径
    Image::make($image)->resize(322, 500)->save(public_path('upload/image-folder/'. $image_gen));
    // 修复路径分隔符,确保URL格式正确
    $save_url = 'upload/image-folder/'. $image_gen;
}

$latest = new Latest();
$latest->title = $request->title;
$latest->description = $request->description;
// 修复字段赋值:使用模型实际字段名`image`而非变量`$image`
$latest->image = $save_url;
$latest->save();

关键修复点说明

  • 验证规则修复:将image字段的验证规则合并为一条,确保mimes和max规则生效
  • 路径拼接修复:在$save_url中添加目录分隔符/,生成正确的相对路径
  • 模型赋值修复:将$latest->$image改为$latest->image,明确指定模型的image字段,避免将文件对象的临时路径存入数据库

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:20:22