本文介绍如何使用requests上传图片或文件



一般上传都需要使用到post请求,使用files参数上传图片或文件


请求data传参如下:

python自动上传图片返回link python post上传图片_绝对路径

代码如下

# coding=utf-8
# 导入requests包
import requests

url = ""		#  上传文件的接口地址
header = {"Content-Type":"", "Cookie":"" }	#  请求头部信息,大部分上传照片不要"Content-Type"值
data= {}	# data传参(部分接口需要data传参)

file_path = ""  # 图片或文件的绝对路径
file = {"multipartFile": ("a.jpg", open(file_path, "rb"), "image/jpeg")}  # "image/jpeg"照片格式
#file = {"multipartFile": ("产品导入.zip", open(path, "rb"), "application/zip")}	# "application/zip"zip格式

r = requests.post(url, headers=header, data=data, files=file)
print(r.json())	# 打印接口返回数据

继续优化下,上面代码运行后虽然上传图片成功,但是会报文件未关闭的错误。因此我们改造下,使用with方法打开,它会自动关闭。
代码如下:

# coding=utf-8
# 导入requests包
import requests

url = ""		#  上传文件的接口地址
header = {"Content-Type":"", "Cookie":"" }	#  请求头部信息,大部分上传照片不要"Content-Type"值
data= {}	# data传参(部分接口需要data传参)

file_path = ""  # 图片或文件的绝对路径
with open(self.img_path, 'rb')as f:    # 使用with打开图片后自动关闭,直接用open后面会报未关闭图片错误
	file = {"multipartFile": ("a.jpg", f.read(), "image/jpeg")}  # "image/jpeg"照片格式
	#file = {"multipartFile": ("产品导入.zip", f.read(), "application/zip")}	# "application/zip"zip格式

r = requests.post(url, headers=header, data=data, files=file)
print(r.json())	# 打印接口返回数据