1

我有 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 在内部将字节数组转换为字符串。

4

1 回答 1

0

好的,我想通了。

我的代码是正确的,它以正确的格式输出文件。

问题出在 freedts 驱动程序上,它在 freedts.conf 中的限制为 64512 字节

text size = 64512

将其更改为更理智的东西可以修复错误。

于 2013-11-05T20:08:57.597 回答