问题描述
在 Postgresql 的表中存储约 100 个 JPEG(每个 24K-100K)作为 bytea 列。
<img/>
标签 src 属性引用 svelteKit 端点:
<img src="/api/file/18.json" alt="Person"/>
出现此错误:
来自路由/api/file/76.json 的无效响应:Uint8Array 主体必须伴随内容类型:application/octet-stream 标头
export async function get({ params }) {
const { id } = params
const sql = `SELECT _id,name,type,data FROM files WHERE _id = $1;`
const { rows } = await db.query(sql,[id])
const file = rows[0]
return {
headers: {
'Content-disposition': `attachment; filename=${file.name}`,'Content-type': file.type
},body: file.data
}
}
由于 SvelteKit endpoints 不与 req/res 对象交互,因为它们仅在某些平台上可用,因此我不能将 bytea 值作为流写出到响应对象,但我不是确定正确的方法是什么。
也试过这个sql语句...
SELECT _id,encode(data,'base64') as data FROM files WHERE _id = $1;
但这没有帮助。
有什么想法吗?
更新:该问题可能与 svelteKit 错误有关 - 请参阅 https://github.com/sveltejs/kit/issues/1438。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)