文件的下载 妖狐艹你老母 2022-06-17 05:25 118阅读 0赞 # 超链接下载 # `<a href="${pageContext.request.contextPath}/File/a.txt">文本文件</a>` 如果文件可以直接被浏览器解析,那么会在浏览器中直接打开,不能被浏览器直接解析的,就是下载操作。直接打开的要想下载,右键另存为。 超链接下载,要求下载的资源,必须是可以直接被浏览器直接访问的。(比如我的文件没有放在当前项目下,而是放到了另一个D盘下,浏览器就访问不到我D盘下的文件) 客户端访问服务器静态资源文件时,静态资源文件是通过缺省Servlet返回的,在Tomcat配置文件conf/web.xml中的org.apache.catalina.servlets.DefaultServelt操作的 # 在服务器端编程完成下载 # 新建一个jsp,填写代码 <body> <a href='${pageContext.request.contextPath}/download?filename=a.txt'>txt文件</a> <a href='${pageContext.request.contextPath}/download?filename=a.jpg'>jpg文件</a> <a href='${pageContext.request.contextPath}/download?filename=a.mp3'>mp3文件</a> </body> 新建一个Servlet,download.java public class download extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String filename=request.getParameter("filename"); File file=new File("d:/"+filename); if (file.exists()) { FileInputStream fis=new FileInputStream(file);//读取要下载文件的内容 OutputStream os=response.getOutputStream();//将要下载的文件内容通过输出流写回到浏览器 int len=0; byte[] b=new byte[1024*1024]; while((len=fis.read(b))!=-1){ os.write(b,0,len); } os.close(); fis.close(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } 这样做之后,浏览器也可以访问不在项目下的文件了。 但还是,如果文件可以直接被浏览器解析,那么会在浏览器中直接打开,不能被浏览器直接解析的,就是下载操作。直接打开的要想下载,右键另存为。 设置一个响应头,设置后的效果,就是无论返回的是否可以被浏览器解析,都是下载。 response.setHeader("content-disposition", "attachment;filename="+filename); 文件名乱码问题 如果文件名为中文,下载的时候文件名会为空。 添加代码 String agent=request.getHeader("user-agent"); if (agent.contains("MSIE")) { //IE filename=URLEncoder.encode(filename,"utf-8"); }else if (agent.contains("Firefox")) { //火狐 filename="=?utf-8?B?"+new BASE64Encoder().encode(filename.getBytes("utf-8"))+"?="; }else{ //其他浏览器 filename=URLEncoder.encode(filename,"utf-8"); }
相关 文件的下载 1、利用html标签直接指向服务器的资源: 工程结构: ![1392562-20190925142121456-227761551.png][] <! 不念不忘少年蓝@/ 2023年08月17日 16:10/ 0 赞/ 56 阅读
相关 文件下载 对应文件上传的下载 1、javaweb方法实现: public String download(){ try { //获取文件ID ゝ一世哀愁。/ 2022年07月13日 14:08/ 0 赞/ 199 阅读
相关 下载文件 //设置文件MIME类型 response.setContentType(getServletContext().getMimeType(f 浅浅的花香味﹌/ 2022年06月17日 05:44/ 0 赞/ 177 阅读
相关 文件的下载 超链接下载 `<a href="${pageContext.request.contextPath}/File/a.txt">文本文件</a>` 如果文件可以直接被浏览 妖狐艹你老母/ 2022年06月17日 05:25/ 0 赞/ 119 阅读
相关 文件下载 关键: //告知浏览器要下载文件 response.setHeader("content-disposition","attachment;filename= Myth丶恋晨/ 2022年06月04日 10:37/ 0 赞/ 204 阅读
相关 文件下载 导入jar commons-fileupload-1.3.1.jar commons-io-2.2.jar 在jsp中添加超链接,设置要下载的文件 叁歲伎倆/ 2022年05月06日 10:44/ 0 赞/ 187 阅读
相关 文件下载 支持多种不同文件格式下载: logger.info("\\\\\下载文件开始\\\\\"); /\拼接下载文件\/ Str 小咪咪/ 2022年04月16日 03:08/ 0 赞/ 246 阅读
相关 文件下载 html 标签 点击自动下载 <button> <a href = "http://localhost/day.zip"> 布满荆棘的人生/ 2022年03月18日 13:56/ 0 赞/ 440 阅读
相关 下载文件 import javax.servlet.http.HttpServletResponse; import java.io.BufferedOutputStre 骑猪看日落/ 2022年01月11日 02:57/ 0 赞/ 252 阅读
相关 Linux下载——下载文件的命令 Linux下载——获取网络文件的命令 摘抄:本文主要学习了在Linux系统中如何下载文件的命令。 wget命令 wget命令是一个用来下载文件的命令,可以在后台运 红太狼/ 2021年10月26日 15:54/ 0 赞/ 341 阅读
还没有评论,来说两句吧...