0

HTTP Post リクエストからの JSON データとファイルに基づいてプレゼンテーション オブジェクトを生成するフラスコ サーバーを開発しようとしています。同じコードでファイルをローカルに生成できますが、http 応答として送信しようとすると失敗します。

これは、http 応答として送信するためのコード スニペットです。

prs_file_io = BytesIO()
prs.save(prs_file_io)
resp = Response()
resp.status_code = 200
resp.set_data(prs_file_io.getvalue())
return resp

そして、これがリクエストを送信してファイルを保存しようとするpythonスクリプトです-

r = requests.post('http://localhost:8181/create-ppt',
                  #data=open('tile_resp.json', 'rb'),
                  files={'1': open('./0NtNFb0F9ch15fDrgYoECEpctPkjvayD.png', 'rb'),
                         'tile_data': open('tile_resp.json', 'rb')})
print(r.content)

最後に、リクエスト スクリプトからの出力を pptx ファイルにパイプします。

しかし、これは私がここでどんな間違いを犯しているのか分かりませんか?

4

3 に答える 3

1

以下はどうでしょう。

response = make_response(prs_file_io.get_value())
response.headers['Content-Type'] = "application/vnd.openxmlformats-officedocument.presentationml.presentation"
response.headers['Content-Description'] = 'attachment; filename=example.pptx'
return response

make_responseFlask のメソッドですmake_response()を参照してください

応答が pptx ファイルである必要がある場合、それは機能しますか?

于 2016-12-13T11:22:47.150 に答える