使用ajax响应下载zip文件

时间:2015-02-05 08:22:58

标签: javascript c# ajax http ashx

我需要使用ajax和ashx下载一个zip文件。目前我使用的是代码https://stackoverflow.com/a/23797348,但下载的zip文件无效。

我使用的ashx代码是:

MemoryStream exportPrjtResponseMemStream = SomeClass.ReturnResponse(ID);

Response.ContentType = "application/zip";

Response.AppendHeader("content-disposition", "attachment; filename=\"" + fileName + ".zip\"");

Response.CacheControl = "Private";

Response.AppendHeader("Content-Length", exportPrjtResponseMemStream.Length.ToString());                            
exportPrjtResponseMemStream.WriteTo(Response.OutputStream);

Response.Flush();

Response.End();

请建议。

1 个答案:

答案 0 :(得分:0)

  • 您是否正在设置' Response.BufferOutput=true' ?
  • 读取MemoryStream(exportPrjtResponseMemStream)之后,将位置设置为0 exportPrjtResponseMemStream.Position=0,然后再将其写入OutputStream。
  • 尝试使用' Response.OutputStream.Flush()'

我的猜测是没有正确构建ResponseStream。另请尝试根据your link above中的解决方案设置所有标头。

HTH!