1

私は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 は内部的にバイト配列を文字列に変換すると信じています。

4

1 に答える 1

0

わかりました。

私が持っているコードは正しかったし、正しい形式でファイルを出力します。

問題は freedts ドライバーにあり、freedts.conf には 64512 バイトの制限があります

text size = 64512

より正気なものに変更すると、エラーが修正されます。

于 2013-11-05T20:08:57.597 に答える