54 lines
1.6 KiB
Python

import os
import requests
# 加载 .env 文件中的环境变量
from dotenv import load_dotenv
load_dotenv()
def upload_image(img_path: str) -> str:
"""
上传本地图片到 easyimage 图床,并返回图片的公网地址。
参数:
img_path: 本地图片路径
返回:
图片在图床上的公网地址
API 参数说明:
- API 地址: 图床提供的API
- 图片文件对应的 POST 参数名: image
- 自定义 body 参数: {"token": "xxxxxx"}
- 响应 JSON 中的图片地址字段路径: url
"""
url = os.getenv('IMG_URL')
token = os.getenv('IMG_TOKEN')
try:
with open(img_path, "rb") as f:
files = {"image": f}
data = {"token": token}
response = requests.post(url, files=files, data=data)
# 检查响应状态码是否为 200 OK
if response.status_code == 200:
result = response.json()
public_url = result.get("url")
if public_url:
return public_url
else:
raise ValueError("响应中未找到图片地址")
else:
raise Exception(f"上传失败,状态码: {response.status_code}, 响应内容: {response.text}")
except Exception as e:
raise Exception(f"上传过程中发生错误: {e}")
# 示例调用
if __name__ == "__main__":
img_path = r"C:\Users\zhangsan\Pictures\社会实践\1.png" # 替换为实际图片路径
try:
public_address = upload_image(img_path)
print("图片上传成功,公网地址:", public_address)
except Exception as err:
print("图片上传失败:", err)