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

如何使用Laravel将PDF文件上传至数据库?解决BLOB显示异常

解决PDF文件存入数据库的问题

你的问题出在直接将$request->file存入数据库——这只是获取了文件对象,并没有读取文件的实际内容,所以数据库里只存储了对象的引用而非文件数据,导致显示[BLOB -24]。按以下步骤修改即可:

1. 确认数据库字段类型

确保pegawai表的file字段类型为LONGBLOB(BLOB容量有限,无法存储较大的PDF文件)。如果用Laravel迁移创建字段,代码如下:

$table->longBlob('file');

2. 修改控制器代码

首先添加文件验证(确保上传的是PDF),然后读取文件的二进制内容再存入数据库:

// 先验证请求参数
$request->validate([
    'nama' => 'required',
    'jabatan' => 'required',
    'umur' => 'required|integer',
    'alamat' => 'required',
    'file' => 'required|file|mimes:pdf' // 验证上传文件为PDF格式
]);

// 读取PDF文件的二进制内容
$pdfContent = $request->file('file')->get();

// 插入数据到数据库
DB::table('pegawai')->insert([
    'nama' => $request->nama,
    'jabatan' => $request->jabatan,
    'umur' => $request->umur,
    'alamat' => $request->alamat,
    'file' => $pdfContent // 存入文件的二进制内容
]);

3. 额外注意事项

  • 如果需要上传大体积PDF,需修改php.ini中的配置:
    • upload_max_filesize:设置为足够大的值(例如20M)
    • post_max_size:值需大于upload_max_filesize(例如25M)
  • 虽然可以将PDF存入数据库,但生产环境更推荐将文件存储到本地文件系统或云存储服务,数据库仅保存文件路径,这样性能更优且更易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 11:01:01