如何使用NodeJS从BLOB列返回文件?
我正在使用oracledb
库来处理数据库操作,并且我有以下代码:
async function getFile(req, res) {
let filename = req.params.filename;
let file = await selectFileFromDb(filename);
file = file.rows[0][0]; //Column that contains the blob content
//I would like to return something like this
res.download(file);
}
我应该怎么做才能从列中读取BLOB内容并作为下载返回给请求者?
谢谢。
答案 0 :(得分:2)
您必须发送内容标头作为必须下载的文件类型,然后在正文中发送缓冲区(假设您从db获得的是缓冲区)。发送代码后,最后结束响应。这是示例代码。
import tkinter as tk
root = tk.Tk()
array_frame = tk.Frame(root)
toolbar = tk.Frame(root)
# use pack for the toolbar and array frame, grid inside the array frame
toolbar.pack(side="top", fill="x")
array_frame.pack(side="top", fill="both", expand=True)
run_button = tk.Button(toolbar, text="Run")
run_button.pack(side="left")
entries = {}
for i in range(5):
for j in range(5):
entry = tk.Entry(array_frame)
entry.grid(row=i, column=j, sticky="nsew")
entries[(i,j)] = entry
root.mainloop()
如何将blob内容作为缓冲区
不要忘记设置async function getFile(req, res) {
let filename = req.params.filename;
let file = await selectFileFromDb(filename);
file = file.rows[0][0]; //Column that contains the blob content
res.setHeader('Content-Length', file.length);
res.write(file, 'binary');
res.end();
}
属性:
oracledb.fetchAsBuffer