wx_rust_common/bean/common_upload_param.rs
1//! 通用文件上传参数。
2//!
3//! 对应 Java `me.chanjar.weixin.common.bean.CommonUploadParam`。
4
5use super::CommonUploadData;
6
7/// 通用文件上传参数。
8///
9/// 用于通用上传接口(`WxService::upload`)的参数载体。
10#[derive(Debug, Clone)]
11pub struct CommonUploadParam {
12 /// 文件对应的接口参数名称(非文件名),如 `media`
13 pub name: String,
14
15 /// 上传数据
16 pub data: CommonUploadData,
17
18 /// 额外的表单字段,用于在上传文件的同时提交其他表单数据。
19 ///
20 /// 例如上传视频素材时需要提交 `description` 字段(JSON 格式的视频描述信息)。
21 pub form_fields: Option<std::collections::HashMap<String, String>>,
22}
23
24impl CommonUploadParam {
25 /// 构建通用上传参数。
26 ///
27 /// # 参数
28 /// - `name`:文件对应的接口参数名称(非文件名),如 `media`
29 /// - `data`:上传数据
30 pub fn new(name: impl Into<String>, data: CommonUploadData) -> Self {
31 Self {
32 name: name.into(),
33 data,
34 form_fields: None,
35 }
36 }
37
38 /// 构建带额外表单字段的上传参数。
39 ///
40 /// # 参数
41 /// - `name`:文件对应的接口参数名称
42 /// - `data`:上传数据
43 /// - `form_fields`:额外的表单字段
44 pub fn with_form_fields(
45 name: impl Into<String>,
46 data: CommonUploadData,
47 form_fields: std::collections::HashMap<String, String>,
48 ) -> Self {
49 Self {
50 name: name.into(),
51 data,
52 form_fields: Some(form_fields),
53 }
54 }
55}