在 PostgreSQL 的表中存储约 100 个 JPEG(每个 24K-100K)作为字节茶列。<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 端点不与 req/res 对象交互,因为它们仅在某些平台上可用,我不能只将 bytea 值作为流写出到响应对象,但我不确定正确的方法是什么.
也试过这个SQL语句......
SELECT _id, name, type, encode(data, 'base64') as data FROM files WHERE _id = $1;
但这没有帮助。
有什么想法吗?
更新:问题可能与 SvelteKit 错误有关 - 请参阅https://github.com/sveltejs/kit/issues/1438。