如何使用 IRequiresRequestStream 获取多个原始 Http 请求输入流? [英] How do I get Multiple raw Http Request Input Stream using IRequiresRequestStream?

查看:44
本文介绍了如何使用 IRequiresRequestStream 获取多个原始 Http 请求输入流?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用服务堆栈上传多个文件.下面的代码对于一个文件上传工作正常.我想上传多个文件.请让我知道需要进行哪些更改,以便以下代码也适用于多个文件上传.

I am trying upload multiple file using service stack. Below code is working fine for one file upload. I want to upload multiple file. Please let me know what change should be required so that below codes work for multiple files upload also.

 public class Hello : IRequiresRequestStream
    {
        Stream RequestStream { get; set; }
    }

在客户端,我使用multipart/form-data"进行文件上传.

At client side I am using 'multipart/form-data' for file upload.

推荐答案

查看 Uploading Files, IRequiresRequestStream 仅用于以字节流的形式访问Request Body,处理多个multipart/form-data上传的文件改用 base.Request.Files 属性,例如:

See the documentation on Uploading Files, IRequiresRequestStream is only for accessing the Request Body as a Stream of Bytes, to process multiple files uploaded with multipart/form-data use the base.Request.Files property instead, e.g:

您可以使用 Request.Files 独立于请求 DTO 访问上传的文件.例如:

You can access uploaded files independently of the Request DTO using Request.Files. e.g:

public object Post(MyFileUpload request)
{
    if (this.Request.Files.Length > 0)
    {
        var uploadedFile = base.Request.Files[0];
        uploadedFile.SaveTo(MyUploadsDirPath.CombineWith(file.FileName));
    }
    return HttpResult.Redirect("/");
}

ServiceStack 的 imgur.servicestack.net 示例展示了如何访问 多个上传文件的字节流,例如:

ServiceStack's imgur.servicestack.net example shows how to access the byte stream of multiple uploaded files, e.g:

public object Post(Upload request)
{
    foreach (var uploadedFile in base.Request.Files
       .Where(uploadedFile => uploadedFile.ContentLength > 0))
    {
        using (var ms = new MemoryStream())
        {
            uploadedFile.WriteTo(ms);
            WriteImage(ms);
        }
    }
    return HttpResult.Redirect("/");
}

这篇关于如何使用 IRequiresRequestStream 获取多个原始 Http 请求输入流?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆