问题描述
目前代码如下:stringpath=System.Web.HttpContext.Current.Request.PhysicalApplicationPath+"uploadFile/部门文件夹/"+dept+"/"+XFileName;//初始化FileInfo类的实例,它作为文件路径的包装FileInfofi=newFileInfo(path);//判断文件是否存在if(fi.Exists){//将文件保存到本机上Response.Clear();Response.AddHeader("Content-Disposition","attachment;filename="+System.Web.HttpUtility.UrlEncode(filename,System.Text.Encoding.UTF8));Response.AddHeader("Content-Length",fi.Length.ToString());Response.ContentType="application/octet-stream";Response.Filter.Close();Response.WriteFile(fi.FullName);Response.End();}在网上找过很多种方法都不行~恳请高手指点~~~谢谢啦~~急~
解决方案
解决方案二:
我也碰到过类似的问题,看了这个后解决了
解决方案三:
我都是在同一张页面左处理的如果重定向本页面的话就会报错了。。~
解决方案四:
引用1楼tianshikuqi8的回复:
我也碰到过类似的问题,看了这个后解决了参考
好东西。。。
解决方案五:
还没解决~~各位大虾~~帮帮忙~
解决方案六:
这个问题问了不下一百遍。。。
解决方案七:
网上以前有个解决方案:你可以试一下stringRECORDFILE;stringhttp;RECORDFILE=Request["RECORDFILE"].Replace("|","");http="/down/";FileInfoDownloadFile=newFileInfo(http+RECORDFILE);//设置要下载的文件Response.Clear();//清除缓冲区流中的所有内容输出Response.ClearHeaders();//清除缓冲区流中的所有头Response.Buffer=false;//设置缓冲输出为false//设置输出流的HTTPMIME类型为application/octet-streamResponse.ContentType="application/octet-stream";//将HTTP头添加到输出流Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(DownloadFile.FullName,System.Text.Encoding.UTF8));//Response.AppendHeader("Content-Length",DownloadFile.Length.ToString());//将指定的文件直接写入HTTP内容输出流。//Response.WriteFile(DownloadFile.FullName);Response.WriteFile(http+RECORDFILE);Response.Flush();//向客户端发送当前所有缓冲的输出Response.End();//将当前所有缓冲的输出发送到客户端
解决方案八:
添加Download.aspx页。FileStreamf=newFileStream("",FileMode.Open);byte[]buffer=newbyte[f.Length];f.Read(buffer,0,buffer.Length);f.Close();Response.ContentType="application/octet-stream";Response.AddHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode("",System.Text.Encoding.UTF8));Response.BinaryWrite(buffer);Response.Flush();Response.End();
解决方案九:
顶一下人气!!!
解决方案十:
帮顶!
解决方案十一:
帮顶!
解决方案十二:
privatevoidFiledown(){stringurl=Server.MapPath("drop.htm");FileStreamf=newFileStream(url,FileMode.Open);byte[]buffer=newbyte[f.Length];f.Read(buffer,0,buffer.Length);f.Close();Response.ContentType="application/octet-stream";Response.AddHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(url,System.Text.Encoding.UTF8));Response.BinaryWrite(buffer);Response.Flush();Response.End();}
试试这个。
解决方案十三:
解决方案十四:
学习了
解决方案十五:
学习!
解决方案:
参考学习。
解决方案:
新建一个download.aspx?filename='aa'页面专门用来下载,并将要下载的文件名传给这个页面,然后在这个页面写以下代码stringfilename=Request.QueryString(["filename"]);FileInfoDownloadFile=newFileInfo("../FILE/"+filename);//设置要下载的文件if(DownloadFile.isExists){Response.Clear();//清除缓冲区流中的所有内容输出Response.ClearHeaders();//清除缓冲区流中的所有头Response.Buffer=false;//设置缓冲输出为falseResponse.ContentType="application/octet-stream";//将HTTP头添加到输出流Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(DownloadFile.FullName,System.Text.Encoding.UTF8));Response.AppendHeader("Content-Length",DownloadFile.Length.ToString());Response.WriteFile(DownloadFile.FullName);Response.Flush();//向客户端发送当前所有缓冲的输出Response.End();//将当前所有缓冲的输出发送到客户端Response.Close();}