python请求上传文件

Aro*_*lia 9 python upload post python-requests

我正在访问一个网站,我想上传一个文件。

我用python写了代码:

import requests

url = 'http://example.com'
files = {'file': open('1.jpg', 'rb')}
r = requests.post(url, files=files)
print(r.content)
Run Code Online (Sandbox Code Playgroud)

但是好像没有上传文件,页面和初始页面一样。

我想知道如何上传文件。

该页面的源代码:

<html><head><meta charset="utf-8" /></head>

<body>
<br><br>
Upload<br><br>
<form action="upload.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="hidden" name="dir" value="/uploads/" />
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

t.m*_*dam 10

几点:

  • 确保将您的请求提交到正确的网址(表单“操作”)
  • 使用data参数提交其他表单字段( 'dir', 'submit' )
  • 包括文件名files(这是可选的)

代码 :

import requests

url = 'http://example.com' + '/upload.php'
data = {'dir':'/uploads/', 'submit':'Submit'}
files = {'file':('1.jpg', open('1.jpg', 'rb'))}
r = requests.post(url, data=data, files=files)

print(r.content)
Run Code Online (Sandbox Code Playgroud)