返回流和写入HTTP输出流之间的区别
本文关键字:输出流 之间 区别 HTTP 返回 | 更新日期: 2023-09-27 18:12:54
在返回文件时
public Stream getFile(string filename){
Stream s = _getFileStream(filename);
Response.AddHeader( "Content-Disposition", "attachment;filename=" + filename+ ";" );
return s;
}
和
public void getFile(string filename){
byte[] b = _getFileBytes(filename);
Response.AddHeader( "Content-Disposition", "attachment;filename=" + filename+ ";" );
Response.BinaryWrite(b)
}
和问题中提供的方法
我遇到的问题是,有时用户上传的图像部分出现乱码。同样奇怪的是,我无法在本地重现这个问题——只有当应用程序在www上时。
我的想法是,也许因为我的资源是本地的,所以在流数据时我不会看到问题,并且我将内容流回客户端的方式是不正确的。那么,返回文件的"正确"(或推荐)方式是什么呢?
我做了两个改变就解决了这个问题。
- 我接受了carlosfiguera所说的并将
HttpContext.Current.Response.AddHeaders(...)
更改为WebOperationContext.Current.OutgoingResponse.Add(...)
- 在我的WebConfig中,我找到了
binding
标签,我的服务将bindingCOnfiguration
设置为并将transferMode
更改为"流式"
这两个变化使我的图像显示正确。