我有 Flask 前端项目,我将 flask-sqlalchemy 与 pymssql 数据库一起使用。现有的 .net 工具可以将文件保存到varbinary(max)
sql server db 的列中,它也可以很好地下载文件。现在我需要烧瓶视图从varbinary(max)
列中输出这些文件。
我目前有以下代码
// in model
content = db.Column(VARBINARY())
// in view
query = models.File.query
f = query.filter(models.File.request_id == request_id).first_or_404()
response = Response(f.content, content_type='application/pdf')
response.headers["Content-Disposition"] = "attachment;filename={0}".format(file_name)
return response
文件主要是 pdf,示例 pdf 工作得很好,但是普通的 pdf 文件已损坏,我知道它们在 db 中没问题,因为 .net 客户端下载它们就好了。
那么如何调整f.content
编码以便用户能够打开提到的 pdf 文件呢?
有趣的是 type(f.content) 正在返回“str”,所以我相信 flask-sqlalchemy 在内部将字节数组转换为字符串。