私はFlaskフロントエンドプロジェクトを持っており、pymssqlデータベースでflask-sqlalchemyを使用しています。ファイルをSQL Server dbの列に保存する既存の.netツールがあり、ファイルをvarbinary(max)
ダウンロードすることもできます。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 ファイルは破損しています。
f.content
では、ユーザーが言及されたpdfを開くことができるようにエンコーディングを微調整する方法は?
type(f.content) が「str」を返すのは興味深いので、flask-sqlalchemy は内部的にバイト配列を文字列に変換すると信じています。