如何将文件放入 HttpResponseMessage 内容?

How to put a file in the HttpResponseMessage Content?

我想 return HttpResponseMessage 中的文件内容如下:

return Request.CreateResponse(HttpStatusCode.OK, {{a file here}});

或者这样:

return new HttpResponseMessage() {
   StatusCode = HttpStatusCode.OK; 
   Content = {{ a file "example.zip" here}}
};

这可能吗?

您可以使用 System.Net.Http.HttpContent.StreamContent 实例将 FileStream 对象添加到 HttpResponseMessage 的内容 属性。像这样:

        // Return archive stream
        HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
        result.Content = new StreamContent(fileStream);
        result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
        result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") {
            FileName = fileName.ToString()
        };

请注意,您可能还应该在实际应用程序中为文件内容添加 MD5 校验和。