通过servicestack返回响应和文件

时间:2017-01-23 01:52:42

标签: file servicestack response

我正在开发一个项目,我们有一个数据库和一个单独的文件系统,它们都存储在同一台服务器上,并通过服务堆栈请求和响应进行访问。

数据库包含文件系统中给定文件的相关元数据,因此我们希望能够同时检索和存储这些文件和文档,以防止孤立数据。

是否可以在同一响应中同时返回数据流(文件)和响应DTO?类似于JsonServiceClient.PostFileWithRequest允许将文件和请求DTO传递到服务器的方式。如果可能在服务器端和客户端都如何处理?

在我的研究中,到目前为止,大多数应用程序似乎只返回响应文档或流,主要是通过使用HttpResult

提前致谢!

1 个答案:

答案 0 :(得分:1)

不支持MIME Multipart/mixed响应,主要用于电子邮件,很少支持和用于HTTP。使用文件下载响应发送附加元数据的最简单方法是使用HTTP标头,例如:

class FileResponseWithMetadata
{
    public byte[] Data { get; set; }
    public string Key { get; set; }
}

另一种选择是将文件内容嵌入DTO中:

foo {
    #something
    DEFINES += FOO
} else {
    #something else
    DEFINES += NOT_FOO
}

bar {
    #another thing
    DEFINES += BAR=42
}

要返回多个文件,您需要使用DotNetZip之类的库来压缩文件并将其返回。