在
之间返回文件有什么区别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)
}
以及问题here中提供的方法。
我遇到的问题是,有时用户上传的图像部分会出现乱码。同样奇怪的是我无法在本地重现问题 - 只有当应用程序在www。
时我的想法是,由于我的资源是本地的,所以在流式传输数据时我不会看到问题,而且我将内容流回客户端的方式也不正确。那么返回文件的“正确”(或推荐)方式是什么?
答案 0 :(得分:0)
我通过两次更改解决了我的问题。
HttpContext.Current.Response.AddHeaders(...)
更改为WebOperationContext.Current.OutgoingResponse.Add(...)
binding
标记,我的服务设置为bindingCOnfiguration
并将transferMode
更改为“流式”这两项更改使我的图像正确显示。