.net 做的文件下载,pc端没问题,但是安卓手机浏览器提示下载失败

code12313 2016-09-05 03:20:37

.net做的文件下载,pc段没有问题,但是用安卓手机浏览器下载是提示下载失败,内部程序错误,请问什么问题?

代码如下:

try
{
if (!File.Exists(FilePath))
{
HttpContext.Current.Response.Write("不存在该文件");
HttpContext.Current.Response.End();
HttpContext.Current.Response.Close();
}
string sFileName = @"E:\NCLFile\BaseFilePath_InfoPub\InfoPub\2016-08\118128\2oa_chgrpt_新建会议系统.doc";

FileStream fileStream = new FileStream(sFileName, FileMode.Open);
long fileSize = fileStream.Length;
byte[] fileBuffer = new byte[fileSize];
fileStream.Read(fileBuffer, 0, (int)fileSize);
//如果不写fileStream.Close()语句,用户在下载过程中选择取消,将不能再次下载
fileStream.Close();

HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Buffer = true;

HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8));
HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString());
HttpContext.Current.Response.AddHeader("Content-Type", "application/doc");
HttpContext.Current.Response.BinaryWrite(fileBuffer);
//HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
HttpContext.Current.Response.Close();
...全文
552 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
abz7676 2016-09-11
  • 打赏
  • 举报
回复
试试用下面的下载文件的方法:


            string strFileName = "ABC.xls";
            string path = AppDomain.CurrentDomain.BaseDirectory + @"ABC\file\" + strFileName;//文件存放路径
            FileInfo file = new FileInfo(path);
            Response.Clear();
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); 

            Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(file.Name));
            Response.AddHeader("Content-Length", file.Length.ToString());
            Response.ContentType = "application/octet-stream";
            Response.WriteFile(file.FullName);
            Response.End();

用Response.WriteFile替换Response.BinaryWrite
sunkess 2016-09-05
  • 打赏
  • 举报
回复
之前也遇到到类似的问题。不报错,但是下载下来的文件是网页。 查阅了不少资料,怀疑是 Response.BinaryWrite()这个函数的问题。 后来用 Response.WriteFile(path)替换了。
  • 打赏
  • 举报
回复
既然你是开发者,你就应该能够调试或者测试,你能有日志。 明确贴出哪一条代码出错的,并且贴出出错时的 Exception 堆栈信息!

62,075

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧