我有以下问题:
- 我开发了一个 .zip 文件下载,并在 c# 的函数中选择了 .pdf。
- 该函数在服务器上的临时文件夹中创建 .zip 文件,并且 HTTP 响应返回此文件。当从 windows 和 IOS 调用时,此函数非常有用。但是当我在 Android 上调用这个函数时,它永远不会下载文件。
在服务器上,我看到该函数在从 android 浏览器(chrome、dolphin ...)调用时一次又一次地创建 .zip 文件,并且从未返回。
奇怪的是,当我选择 90 个 .pdf 文件时我可以很好地运行它(尽管该函数无缘无故地调用了两次),但是当我选择 140 个(或更多)时,问题又发生了。
这是代码:
**string dirName = Utiles.GetNewName();
zipName += ".ZIP\"";
string urlRet = _mSTempPath + @"\" + dirName + ".ZIP";
string urlDelete = _mSTempPath + @"\" + dirName;
System.IO.Stream iStream = null;
// Total bytes to read:
long dataToRead;
//HttpResponse resp = _page.Response;
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ClearHeaders();
using (ZipFile zip = new ZipFile())
{
foreach (string url in filesURLs)
{
zip.AddFile(url,"");
}
zip.Save(_mSTempPath + @"\" + dirName + ".ZIP");
}
// Open the file.
iStream = new System.IO.FileStream(urlRet, System.IO.FileMode.Open,
System.IO.FileAccess.Read, System.IO.FileShare.Read);
// Total bytes to read:
dataToRead = iStream.Length;
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=\"" + zipName);
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("content-length", dataToRead.ToString());
HttpContext.Current.Response.BufferOutput = true;
HttpContext.Current.Response.TransmitFile(urlRet);
HttpContext.Current.Response.Flush();**
请,如果有人可以提供帮助,我将不胜感激。再次感谢!