问题描述
服务器上有个文件夹里面有txt和html两种格式,为该文件夹建立了虚拟目录。datagrid中有个linkbutton来下载服务器文件到本地(比如点击该按钮后,提示打开或保存)求各位指点。
解决方案
解决方案二:
参考:
解决方案三:
可能我描述不清楚已知URL怎么在客户端打开该url文件呢?引用1楼insus的回复:
参考:
解决方案四:
a标签href属性=url,点击a就可以下载
解决方案五:
把文件的地址用一个a标签啊或者啥的设置下然后用户访问这个地址或者点击某个标签会出现下载栏
解决方案六:
把获取到的URL添加到事件中
解决方案七:
protectedvoidbtn_Download_Click(objectsender,EventArgse){//从config中读取文件上传路径stringstrFileUploadPath=ConfigurationManager.AppSettings["FileUploadPath"].ToString();//从列表框控件中读取选择的文件名stringstrFileName=lb_FileList.SelectedValue;//组合成物理路径stringstrFilePhysicalPath=Server.MapPath(strFileUploadPath+strFileName);//清空输出流Response.Clear();//在HTTP头中加入文件名信息Response.AddHeader("Content-Disposition","attachment;FileName="+HttpUtility.UrlEncode(strFileName,System.Text.Encoding.UTF8));//定义输出流MIME类型为Response.ContentType="application/octet-stream";//从磁盘读取文件流System.IO.FileStreamfs=System.IO.File.OpenRead(strFilePhysicalPath);//定义缓冲区大小byte[]buffer=newbyte[102400];//第一次读取inti=fs.Read(buffer,0,buffer.Length);//如果读取的字节大于0,则使用BinaryWrite()不断向客户端输出文件流while(i>0){Response.BinaryWrite(buffer);i=fs.Read(buffer,0,buffer.Length);}//关闭磁盘文件流fs.Close();//关闭输出流Response.End();}
解决方案八:
解决方案:
这种可以直接在浏览器中打开的文件类型,你想要通过对话框指示下载,那你必须通过一个页面或者Handler来做中转,然后指示返回的类型什么的,也可以指定用文件名之类的
解决方案:
引用3楼mariday的回复:
a标签href属性=url,点击a就可以下载
恩恩
解决方案:
<ahref=".../test1.doc">opentheword</a><ahref=".../test2.xls">opentheexcel</a><ahref=".../test3.xlsx">opentheexcel</a>在web.xml里面加上下面两句:<mime-mapping><extension>doc</extension><mime-type>application/vnd.ms-word</mime-type></mime-mapping><mime-mapping><extension>xls</extension><mime-type>application/vnd.ms-excel</mime-type></mime-mapping><mime-mapping><extension>xlsx</extension><mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</mime-type></mime-mapping>