c# - 如何将文件放入 HttpResponseMessage 内容?

标签 c# asp.net file asp.net-web-api httpresponse

我想在 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 校验和。

关于c# - 如何将文件放入 HttpResponseMessage 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29708703/

相关文章:

c# - 使用 jQuery 驱动的双向数据绑定(bind) "Chosen"下拉

c# - 在 Xamarin.Android 中将数据从一个 Activity 传递到另一个 Activity

c# - ASP.Net 页面没有被编译

c# - 我可以在不断开与服务器的连接的情况下重用 HttpWebRequest 吗?

ASP.NET Core MVC 健康检查失败

c# - 在 C# 中多次读取 SQLDataReader?

c# - 如何直接从内存中在 webBrowser 控件中显示图像?

c# - 如何在搜索中排除 protected 操作系统文件

scala - 在 Spark 中读取 Windows 网络文件

file - 无法解析HCL文件中的变量