从Android下载的asp HttpResponse问题

时间:2013-07-05 20:22:43

标签: android httpresponse

我有以下问题:

  1. 我开发了一个.zip文件下载,在c#。
  2. 的函数中选择了.pdf
  3. 该函数在服务器上的临时文件夹上创建.zip文件,HTTP响应返回此文件。 从Windows和IOS调用此函数时效果很好。但是当我在Android上调用此函数时,它永远不会下载该文件。
  4. 在服务器上,我看到该函数在从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();**
    

    如果有人能提供帮助,我将非常感激。 再次感谢!

0 个答案:

没有答案