使用actix_web的HttpResponse开发下载功能

用rust的actix_web开发项目,需要提供文档下载功能,

先来了解一下header中Content-Disposition的作用

Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。当 浏览器 接收到头时,它会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名。详细解释请点击 

利用actix_web的帮助文档下面代码能实现下载功能 

  async fn response_body(req: web::HttpRequest) -> HttpResponse {

        println!("request={:?}", req);

        let mut builder = HttpResponse::Ok();

        let cd1 = ContentDisposition {

            disposition: DispositionType::Attachment,

            parameters: vec![DispositionParam::FilenameExt(ExtendedValue {

                charset: Charset::Iso_8859_1, // The character set for the bytes of the filename

                language_tag: None, // The optional language tag (see `language-tag` crate)

                value: b"test.csv".to_vec(), // the actual bytes of the filename

            })],

        };

        builder.set_header(actix_web::http::header::CONTENT_DISPOSITION, cd1);

        let stream = body::Body::from("this document content");

        builder.message_body(stream)

    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值