请求 - 发布许多文件

时间:2013-11-12 13:46:06

标签: python python-requests

在html中:

   <form action="/addCar" method="post" enctype="multipart/form-data"> 
   many inputs (text, email, etc)

   <input type="file" accept="image/*" name="files[]">
  <input type="file" accept="image/*" name="files[]">
  <input type="file" accept="image/*" name="files[]">
  <input type="file" accept="image/*" name="files[]">
  <input type="file" accept="image/*" name="files[]">
   </li>

  </form>

如何发送多个文件(python请求)?我用:

    files = {
        'files[]': open('img/1.jpg', 'rb'), 
        'files[]': open('img/2.jpg', 'rb')
    }
session = requests.session()
headers = {'User-Agent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36'}
r = session.post(site, car_dict, headers=headers, allow_redirects=True, files=files)

但它只上传2.jpg。怎么解决?

感谢。

1 个答案:

答案 0 :(得分:4)

你要覆盖这些名字。区别对待:

files = {
    'file1': open('img/1.jpg', 'rb'), 
    'file2': open('img/2.jpg', 'rb')
}

或者把它放在一个清单中:

files = {
    'files': [open('img/1.jpg', 'rb'), open('img/2.jpg', 'rb')]
}