簡體   English   中英

Flask FileStorage 對象到 File 對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM