aiohttp 上传文件
时间: 2023-08-08 07:10:48 浏览: 159
好的,关于 aiohttp 的文件上传,可以参考以下示例代码:
```python
import aiohttp
import asyncio
async def upload_file(url, file_path):
async with aiohttp.ClientSession() as session:
with open(file_path, 'rb') as f:
data = f.read()
files = {'file': ('file_name', data)}
async with session.post(url, data=files) as resp:
response_text = await resp.text()
print(response_text)
loop = asyncio.get_event_loop()
url = 'https://www.example.com/api/upload'
file_path = '/path/to/file'
loop.run_until_complete(upload_file(url, file_path))
```
在示例代码中,我们首先导入 aiohttp 库,然后定义了一个异步函数 `upload_file`,用于实现文件上传。在函数中,我们首先使用 `open` 函数读取文件内容,并将其存储在一个 `data` 变量中。然后,我们创建了一个 `files` 字典,用于存储上传的文件信息,其中 `'file'` 是上传文件的字段名,`'file_name'` 是上传文件的文件名,`data` 则是文件内容。
最后,我们使用 `session.post` 方法发送 POST 请求,并将 `files` 字典作为请求数据。在请求发送后,我们使用 `await resp.text()` 来获取响应的文本内容,并打印出来。
希望能够帮助到你!