[英]Flask FileStorage object to File Object
我已經通過flask
制作了一個api,它提交了一個文件,在后端收到后,我想使用python requests
模塊進一步將其上傳到未知服務器
如果我這樣做,服務器會接受該文件 -
requests.post(urlToUnknownServer,files={'file':open('pathToFile')})
現在我的要求是通過flask上傳文件參數。
在燒瓶中,我將文件作為FileStorage
對象。 我不想將它保存在我的服務器上,而是直接希望它進一步上傳。
所以基本上我想將該FileStorage
對象轉換為返回open()
函數的類型,即file
(如果我錯了,請在此處糾正我)
我曾嘗試使用 -
obj=file(request.files['fileName'].read().encode('string-escape'))
requests.post(urlToUnknownServer,files={'file':obj})
這不起作用。 是否可以在不將文件保存在我的服務器上的情況下做到這一點。
也許您可以使用 read() 而不對其進行編碼。 像這樣:
obj=request.files['fileName'].read()
requests.post(urlToUnknownServer,files={'file':obj})
對於任何遇到同樣問題的人,只需轉換為BufferedReader
像這樣:
from io import BufferedReader
image = request.files.get('name')
image.name = image.filename
image = BufferedReader(image)
然后你可以發布它
requests.post(urlToUnknownServer,files={'file' : image})
嘗試不使用 file() 構造函數:
obj = request.files['fileName'].read().encode('string-escape')
requests.post(urlToUnknownServer,files={'file':obj})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.