Return 通过 servicestack 的响应和文件
Return a response and file via servicestack
我正在做一个项目,我们有一个数据库和一个单独的文件系统,它们都存储在同一台服务器上,并通过服务堆栈请求和响应进行访问。
数据库包含文件系统中给定文件的相关元数据,因此我们希望能够同时检索和存储这些文件和文档以防止孤立数据。
是否可以 return 在同一个响应中既有数据流(文件)又有响应 DTO?类似于 JsonServiceClient.PostFileWithRequest
允许将文件和请求 DTO 传递给服务器的方式。如果可能,服务器端和客户端如何处理?
在我的研究中,到目前为止,大多数应用程序似乎只是 return 响应文档或流,并且主要是通过使用 HttpResult
。
提前致谢!
不支持 MIME Multipart/mixed 响应,后者主要用于电子邮件,很少支持和用于 HTTP。使用文件下载响应发送附加元数据的最简单方法是使用 HTTP Headers,例如:
return new HttpResult(fileInfo) {
Headers = {
{"X-key", "value"}
}
};
另一种选择是将文件的内容嵌入到 DTO 中:
class FileResponseWithMetadata
{
public byte[] Data { get; set; }
public string Key { get; set; }
}
对于 return 多个文件,您需要使用像 DotNetZip 和 return 这样的库来压缩文件。
我正在做一个项目,我们有一个数据库和一个单独的文件系统,它们都存储在同一台服务器上,并通过服务堆栈请求和响应进行访问。
数据库包含文件系统中给定文件的相关元数据,因此我们希望能够同时检索和存储这些文件和文档以防止孤立数据。
是否可以 return 在同一个响应中既有数据流(文件)又有响应 DTO?类似于 JsonServiceClient.PostFileWithRequest
允许将文件和请求 DTO 传递给服务器的方式。如果可能,服务器端和客户端如何处理?
在我的研究中,到目前为止,大多数应用程序似乎只是 return 响应文档或流,并且主要是通过使用 HttpResult
。
提前致谢!
不支持 MIME Multipart/mixed 响应,后者主要用于电子邮件,很少支持和用于 HTTP。使用文件下载响应发送附加元数据的最简单方法是使用 HTTP Headers,例如:
return new HttpResult(fileInfo) {
Headers = {
{"X-key", "value"}
}
};
另一种选择是将文件的内容嵌入到 DTO 中:
class FileResponseWithMetadata
{
public byte[] Data { get; set; }
public string Key { get; set; }
}
对于 return 多个文件,您需要使用像 DotNetZip 和 return 这样的库来压缩文件。