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

Vue.js上传图片存Oracle BLOB类型报ORA-01465错误求助

问题解决办法

ORA-01465: invalid hex number 属于Oracle数据库专属报错,触发原因是你尝试向BLOB类型字段插入的内容不是合法的二进制数据,问题完全出在后端数据处理逻辑,和前端上传逻辑无关。

前端优化(可选,简化冗余代码)

你之前做的「文件转dataURL再转Blob」是完全冗余的操作,直接上传原始文件即可,相关转换代码可以直接删除。同时axios提交FormData时不需要手动设置Content-Type请求头,框架会自动生成带boundary分隔符的正确请求头,手动设置反而可能导致解析失败。
修改后的前端提交代码示例:

async OnSubmit() {
  this.loading = true;
  const formData = new FormData();
  formData.append('first_name', this.first_name);
  // 直接追加原始文件即可
  formData.append('signature_1_1', this.$refs.file.files[0]);
  try{
    let{data, status} = await axios.post('/api/auth/register', formData);
    this.loading = false;
    if ([201, 200].includes(status)) {
      Swal.fire({
        title: "Success!",
        text: `Successfully Register RE Developer!`,
        icon: "success",
        allowOutsideClick: false,
        showCancelButton: false,
        confirmButtonText: "Close",
      }).then((result) => {
        this.$router.push({ name: "login" });
      });
    }
  } catch (error) {
    this.loading = false;
    Swal.fire({
      title: "Oops!",
      text: `Something went wrong!`,
      icon: "error",
      allowOutsideClick: false,
      showCancelButton: false,
      confirmButtonText: "Close",
    });
  } 
}

后端修改(核心修复)

  1. 验证层补全字段验证规则,同时读取上传文件的二进制内容再传入模型:
public static function validateTable(Request $request) {
  $validated = $request->validate([
    'first_name' => 'required|string',
    // 补全文件验证规则,可根据需求调整格式和大小限制
    'signature_1_1' => 'required|file|mimes:png,jpg,jpeg|max:2048',
  ]);
  return [
    'first_name' => $validated['first_name'],
    // 关键:读取上传文件的二进制内容,适配Oracle BLOB字段
    'signature_1_1' => $request->file('signature_1_1')->get(),
  ];
}
  1. 检查对应数据表的Model类,确保signature_1_1已经加入$fillable属性,避免批量赋值时被过滤:
protected $fillable = [
  'first_name',
  'signature_1_1', // 确保存在该行
  // 其他允许批量赋值的字段
];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:36:02