#multipart-form #forms #actix-web #extractor #typed #upload #file

actix-easy-multipart

为actix-web提供的类型化多部分表单提取器

8个版本 (5个稳定版)

3.0.0 2022年11月5日
2.1.1 2022年4月30日
2.0.0 2022年3月28日
2.0.0-beta.12022年1月27日
0.1.1 2022年1月15日

#1194解析器实现

Download history 178/week @ 2024-03-13 230/week @ 2024-03-20 149/week @ 2024-03-27 174/week @ 2024-04-03 271/week @ 2024-04-10 176/week @ 2024-04-17 517/week @ 2024-04-24 184/week @ 2024-05-01 93/week @ 2024-05-08 159/week @ 2024-05-15 105/week @ 2024-05-22 162/week @ 2024-05-29 132/week @ 2024-06-05 244/week @ 2024-06-12 144/week @ 2024-06-19 120/week @ 2024-06-26

每月651次下载
serv4rs 中使用

LGPL-3.0

55KB
1K SLoC

Actix Easy Multipart

Build status crates.io docs.rs

actix-web 提供的类型化多部分表单提取器。

示例

use actix_web::Responder;
use actix_easy_multipart::{File, FromMultipart};
use actix_easy_multipart::extractor::MultipartForm;

#[derive(MultipartForm)]
struct Upload {
    description: Option<Text<String>>,
    timestamp: Text<i64>,
    #[multipart(rename="image_set[]")
    image_set: Vec<Tempfile>,
}

async fn route(form: MultipartForm<Upload>) -> impl Responder {
    format!("Received 5 images: {}", form.image_set.len())
}

功能

  • 接收可选字段,使用 Option
  • 接收 字段列表,使用 Vec<T>
  • 使用 Text<T> 从纯文本字段反序列化整数、浮点数和枚举。
  • 使用 Json<T> 从JSON上传反序列化复杂数据。
  • 使用 Tempfile 将文件上传接收到的文件存储到磁盘上的临时文件中。
  • 用户自定义的异步字段读取器,例如,您可能希望将表单数据流式传输到对象存储服务,只需实现 FieldReader 特性。

版本和兼容性

actix-easy-multipart actix-web tokio
0.x 2.x 0.2
1.x 3.x 0.2
2.x 4.x 1
3.x 4.x 1

另请参阅

依赖项

~17–29MB
~549K SLoC