在使用put请求方式上传文件时,如果使用files,下载下来的文件会原始文件多了一些数据。
如下是想上传一个文本,
def upload_File():
res=getPutUrl()
url=res["presignedUrl"]
print(url)
fileId=res["fileId"]
header=res["header"]
file01=path.join(UPIMAGES_PATH,"t.txt")
with open(file01,"rb") as f:
requests.request(url=url,
method="put",
headers=header,
files={'filename':f}
)
return fileId
原始文件数据:
hello
jajjf
上传后再下载的文件数据:
--9f35eb1d70b7b7f4f0e4159cc0b6d3aa
Content-Disposition: form-data; name="name"; filename="web.txt"
hello
jajjf
--9f35eb1d70b7b7f4f0e4159cc0b6d3aa--
如果是继续使用上述方式上传图片的话,下载下来的图片会打不开。如下是上传图片
def upload_File():
res=getPutUrl()
url=res["presignedUrl"]
print(url)
fileId=res["fileId"]
header=res["header"]
file01=path.join(UPIMAGES_PATH,"zyx.jpeg")
with open(file01,"rb") as f:
requests.request(url=url,
method="put",
headers=header,
files={'filename':f}
)
return fileId
下载图片后,打不开。

解决方法:使用data作为参数去传递文件数据。
def upload_File():
res=getPutUrl()
url=res["presignedUrl"]
print(url)
fileId=res["fileId"]
header=res["header"]
file01=path.join(UPIMAGES_PATH,"zyx.jpeg")
with open(file01,"rb") as f:
requests.request(url=url,
method="put",
headers=header,
data=f
)
return fileId
这时下载下来的图片就可以顺利打开了
本文主要探讨了使用PUT请求上传文件时,尤其是图片,由于额外数据导致下载后图片无法打开的问题。解决方案是通过使用data参数传递文件数据,确保下载的图片能够正常打开。
2032

被折叠的 条评论
为什么被折叠?



