1

返回文件时有什么区别

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.

我的想法是,也许由于我的资源是本地的,所以在流式传输数据时我不会看到问题,并且我将内容流式传输回客户端的方式不正确。那么返回文件的“正确”(或推荐)方式是什么?

4

1 回答 1

0

我通过两个更改解决了我的问题。

  1. 我接受了卡洛斯菲格拉所说的并 HttpContext.Current.Response.AddHeaders(...)改为WebOperationContext.Current.OutgoingResponse.Add(...)
  2. 在我的 WebConfig 中,我找到了binding我的服务bindingCOnfiguration设置的标签并更改transferMode为“流式传输”

这两个更改使我的图像正确显示。

于 2013-05-10T16:06:56.860 回答