普贤教程 › 包参考
multipart 包
multipart/form-data 编码(HTTP 上传)
| 项 | 值 |
|---|---|
| 包名 | multipart |
| 版本 | 0.1.0 |
| 入口 | multipart.px |
| 分类 | 数据格式与编解码 |
| 文件数 / 行数 | 1 / 85 |
安装与引入
bash
pxpkg init # 首次 pxpkg add multipart@0.1.0 pxpkg install
px
import multipart所属分类教程:数据格式与编解码
公开接口
| 函数 | 参数 |
|---|---|
mp_encode | fields, files |
其余 4 个 def(内部与辅助,可直接调用但不属稳定接口)
| 函数 | 参数 |
|---|---|
mp_boundary | |
mp_field_bytes | boundary, name, value |
mp_file_bytes | boundary, fname, finfo |
mp_val_str | fv |
包内说明(源码头注释)
text
============================================================
普贤标准库:std.multipart —— multipart/form-data 编码(HTTP 上传)
------------------------------------------------------------
纯函数库(无 IO、无状态),编译/解释双模式一致。
面向「http_request 上传 multipart 表单 / 飞书 uploadImage」场景:
mp_encode(fields, files) → {"body": bytes, "content_type": str, "len": int}
fields: dict 字段名→值(int/float/bool 自动转 str,bytes 内容按字段原样)
files: dict 字段名→ {filename: 文件名, data: str|bytes 内容, type: MIME(可选)}
body 为完整 multipart 字节(自动 boundary)
用法:
import std.multipart
var m = mp_encode({"token": "abc"},
{"image": {"filename": "a.png", "data": img_bytes,
"type": "image/png"}})
var r = http_request(url, "POST", m["body"],
{"Content-Type": m["content_type"]})
============================================================
---- CRLF 常量(顶层 let:import 时初始化一次,只读)----