Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 输出文件与Flask一起存储在VARBINARY列中_Python_Flask_Flask Sqlalchemy_Pymssql - Fatal编程技术网

Python 输出文件与Flask一起存储在VARBINARY列中

Python 输出文件与Flask一起存储在VARBINARY列中,python,flask,flask-sqlalchemy,pymssql,Python,Flask,Flask Sqlalchemy,Pymssql,我有一个Flask前端项目,我使用Flask sqlalchemy和pymssql数据库。 现有的.net工具可以将文件保存到sql server db中的varbinary(max)列中,它也可以很好地下载文件。 现在我需要flask视图从varbinary(max)列输出这些文件 我目前有以下代码 // in model content = db.Column(VARBINARY()) // in view query = models.File.query f = query.fi

我有一个Flask前端项目,我使用Flask sqlalchemy和pymssql数据库。 现有的.net工具可以将文件保存到sql server db中的
varbinary(max)
列中,它也可以很好地下载文件。 现在我需要flask视图从
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


有趣的是,类型(f.content)返回'str',所以我相信flask sqlalchemy会在内部将字节数组转换为字符串。

好的,我知道了

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

问题在于freedts驱动程序,它在freedts.conf中有64512字节的限制

text size = 64512

将其更改为更理智的方式可以修复错误。

是因为您如何使用Flask,还是因为您如何使用SQLAlchemy?您是否尝试过制作一个脚本,只使用SQLAlchemy保存然后从数据库中检索PDF?这可能有助于限制问题的实质。@MarkHildreth我将讨论更多细节。我正在用
.net
保存文件,只想用flask sqlalchemy输出它。