我有一个奇怪的案例,我有一个附加文件的POST。我使用aiohttp作为服务器。通常我会使用get来检索文件,但在这种情况下这是不可能的。我似乎找不到任何关于使用aiohttp通过http检索文件的文档。
答案 0 :(得分:1)
简单示例假设您使用了enctype="multipart/form-data"
的表单:
async def handle_file_upload(request):
data = await request.post()
print('parts:', data.keys())
# assuming we have a file called foobar
print('filename:', data['foobar'].filename)
print('file object:', data['foobar'].file)
print('file content:', data['foobar'].file.read())
... # (return response etc.)
要小心在野外使用这样的代码而没有保护,因为我相信await request.post()
会将所有请求数据读入内存。如果有人curl -X POST --data-binary "@/dev/urandom"...
,你将遇到大麻烦。