【问题标题】:How do I handle multipart form data using ServiceStack?如何使用 ServiceStack 处理多部分表单数据?
【发布时间】:2013-10-08 20:08:51
【问题描述】:

我正在编写一个服务来处理使用文件的 mutlipart/formdata 编码从浏览器发送的请求。

我发现我可以通过使用接口 IRequiresRequestStream 装饰我的请求 DTO 并提供一个名为 RequestStream 的属性来访问原始输入流。但这样做似乎意味着我无法填写任何请求属性,即使是 URL 中包含的那些。例如,我将请求的路由设置如下

[Route("/document/{Type}/{Id}", "GET,PUT,POST/DELETE")]
public class UploadFileRequest : IReturn<UploadFileResponse>, IRequiresRequestStream
{
    public long Id { get; set; }
    public string Type { get; set; }

    public Stream RequestStream { get; set; }
}

当我向此服务发送 PUT 请求时,我看到 RequestStream 属性已按我的意愿设置,但 Id 和 Type 属性为空。 https://groups.google.com/forum/#!msg/servicestack/l9qFvZNbuT0/dwyRQKBhmlMJ 似乎表明会发生这种情况。

有什么方法可以获取路由参数并仍然访问请求流?即使这样,我似乎也需要处理表单数据的解析,但希望我能找到一个库来轻松完成这项工作。

【问题讨论】:

    标签: servicestack


    【解决方案1】:

    Combining URL and POST variables in ServiceStack 实际上帮助解决了这个问题。 Request 对象上的属性 FormData 和 Files 可从服务中访问,它们包含所需的信息。所以 DTO 不包含 RequestStream 属性或实现 IRequiresRequestStream 接口

    【讨论】:

      猜你喜欢
      • 2021-02-20
      • 1970-01-01
      • 2012-11-17
      • 1970-01-01
      • 2010-11-03
      • 2021-04-06
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      相关资源
      最近更新 更多