当前位置: 首页 > news >正文

文件上传/下载接口开发

接口特性

文件传输接口与传统接口的核心差异体现在数据传输格式:

  • 上传接口采用 multipart/form-data 格式支持二进制文件传输
  • 下载接口接收二进制流并实现本地文件存储

文件上传接口开发

接口规范

请求地址:/createbyfile  
请求方式:POST  
内容类型:multipart/form-data  参数说明:
┌───────────┬─────────┬───────┬────────────────────────────┐
│ 参数名称  │ 类型    │ 必填  │ 说明                       │
├───────────┼─────────┼───────┼────────────────────────────┤
│ file      │ File    │ 是    │ 待上传文档文件             │
│ title     │ String  │ 是    │ 文档名称                   │
│ fileType  │ String  │ 是    │ 支持13种标准文件格式        │
└───────────┴─────────┴───────┴────────────────────────────┘

代码实现关键点

  1. 文件参数构造
# 元组结构说明(参数名,文件对象,MIME类型)
"files": {"file": ("自定义文件名.pdf", open(r"F:\pdf_file.pdf", "rb"), "pdf")
}

  1. 混合参数请求
req = {"url": "127.0.0.1/v2/document/createbyfile","method": "POST","files": {"file": ("", open(r"F:\pdf_file.pdf", "rb"), "pdf")},"data": {"title": "接口发起的文档","fileType": "pdf"}
}

完整实现示例

# base_api.py
import requestsclass BaseApi:@staticmethoddef send_request(req):return requests.request(**req)# createbyfile.py
class FileUploader:def execute_upload(self):request_config = {"url": "127.0.0.1/createbyfile","method": "POST","files": {"file": ("", open(r"F:\pdf_file.pdf", "rb"), "pdf")},"data": {"title": "接口文档", "fileType": "pdf"}}response = BaseApi.send_request(request_config)response.raise_for_status()return response.json()["result"]["documentId"]


文件下载接口开发

接口规范

请求地址:/download  
请求方式:GET  参数说明:
┌───────────────────────┬───────────┬───────┬────────────────────────────┐
│ 参数名称              │ 类型      │ 必填  │ 说明                       │
├───────────────────────┼───────────┼───────┼────────────────────────────┤
│ contractId            │ Long      │ 是    │ 合同唯一标识               │
│ downloadItems         │ String[]  │ 否    │ 下载内容选项               │
│ needCompressForOneFile│ Boolean   │ 是    │ 单文件压缩控制             │
└───────────────────────┴───────────┴───────┴────────────────────────────┘

核心实现逻辑

class FileDownloader:def fetch_file(self):request_params = {"contractId": 2947403075747869536,"downloadItems": ["NORMAL"],"needCompressForOneFile": False}response = BaseApi.send_request({"url": "127.0.0.1/download","method": "GET","params": request_params})with open("F:/contract.pdf", "wb") as file:file.write(response.content)return response.content


相关文章:

  • 【汇编逆向系列】八、函数调用包含混合参数-8种参数传参,条件跳转指令,转型指令,movaps 16字节指令
  • 深入浅出多路归并:原理、实现与实战案例解析
  • centos7升级glibic-2.28
  • 局域网聊天软件
  • 数据结构与算法——二叉树高频题目(1)
  • 【设计模式-5】设计模式的总结
  • 【学习笔记】构造函数+重载相关
  • Halcon腐蚀例子
  • php执行系统命令的四个常用函数
  • cursor和windsurf使用体验对比
  • 国10平方拆分、数正方形
  • python --导出数据库表结构(pymysql)
  • 【Linux】awk 命令详解及使用示例:结构化文本数据处理工具
  • boost::qvm 使用示例
  • FineReport模板认证找不到模板
  • 逻辑卷和硬盘配额(补充)
  • GT接收端共模电压
  • 永磁同步电机控制算法--模糊PI转速控制器
  • Spring Cloud核心组件深度解析(2025终极指南)
  • nuScenes 数据集及同类型自动驾驶数据集介绍
  • 株洲品牌网站建设/百度爱采购优化
  • 做机械产品用什么网站/网站推广软件免费观看
  • 潍坊高端网站建设/百度seo价格查询系统
  • 一个网站做两级三级是什么意思/图片百度搜索
  • 老网站301跳转新网站/文山seo
  • 汕头哪里学网站建设最好/网站推广关键词排名优化