2016-12-13 41 views
0

我想開發一個基於JSON數據和來自HTTP Post請求的文件生成演示文稿對象的容器服務器。 我能夠使用相同的代碼在本地生成文件,但是當我嘗試發送它作爲http響應失敗時。發送演示文稿對象作爲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文件。

但是,這不工作任何想法我在這裏犯了什麼錯誤?

+0

我不熟悉pptx,但我想你的迴應應該有一個特定的mimetype/Content-Type? – VKolev

+0

「r.content」是否與您期望的一樣是準確的數據? – Andersson

+0

@VKolev - 不應該自動設置內容類型嗎? – yashdosi

回答

0

如何如下:

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_response是從瓶的方法見make_response()

將這項工作如果響應應該是一個PPTX文件?