Servlet中下载已上传的文件(已测试)
注:该方法下载文件,若文件不存在,但是数据库中存在文件名,则会自动创建一个空白文件给客户。
注:这里只是流的传输,不在页面显示——即不获取文件中的内容!!!
(如需获取文件内容,请查看:http://zyjustin9.iteye.com/admin/blogs/2134415)
1.代码:
//1.通过id在数据库中获取已存的文件的名称 PolicyDao pdao =new PolicyDao(); String sID=request.getParameter("id"); long id = Long.parseLong(sID); String fileName = pdao.getPolicyDoc(id);//如:文件1.doc String uploaPath = Configuration.getConfig().getString("policyFilesPath");//如:D:\logs\ try { File file = new File(uploaPath + fileName);//D:\logs\文件1.doc response.setContentType("text/plain"); //response.setHeader("Location",fileName);//此句不要没影响 response.setHeader("Content-Disposition", "attachment;filename=" + new String(file.getName().getBytes("GBK"), "iso-8859-1"));//修改文件标题的编码 //response.setHeader("Content-Disposition", "attachment;filename=" + new String(file.getName().getBytes("UTF-8"), "iso-8859-1")); /**注意:系统是UTF-8的,但是设置为UTF-8编码时,IE下载时文件标题为乱码!其他浏览器不会!设置为GBK时都正常!*/ OutputStream out = response.getOutputStream(); InputStream inputStream = new FileInputStream(file); byte[] buffer = new byte[1024]; int i = -1; while ((i = inputStream.read(buffer)) != -1) { out.write(buffer, 0, i); } out.flush(); out.close(); } catch (FileNotFoundException e) { logger.error(e.toString()); System.out.println("文件未找到"); } return;
2.错误设置:
utf-8编码会导致IE浏览器下载文件时标题为乱码!
不设置编码时,下载的文件标题中的中文消失!
相关推荐
在IT行业中,文件上传下载是Web应用中常见的功能,尤其在服务器端编程中,Servlet扮演着重要的角色。Servlet是Java编程语言中用于扩展服务器功能的接口,它可以在接收到HTTP请求后进行处理,并向客户端返回响应。在...
本教程将详细讲解如何使用Servlet实现文件的上传和下载功能,其中涉及到的主要技术点包括Servlet API、Multipart解析以及文件流操作。 首先,我们需要了解Servlet在文件上传中的作用。Servlet在接收到客户端(通常...
在CKEditor的文件上传场景中,Servlet将接收编辑器发送的文件数据,并将其保存到服务器的指定位置。 1. **CKEditor配置**: - 在CKEditor的配置文件(config.js)中,我们需要设置允许上传的文件类型、最大文件...
在提供的压缩包文件`servletupLoadFile`中,可能包含了实现上述步骤的完整Servlet代码和相关的配置文件,你可以参考这些文件来理解和学习文件上传的实现。记得根据你的实际需求对代码进行调整和优化。
总之,SmartUpload为在Servlet中实现文件上传提供了便利,使得开发者能够更专注于业务逻辑,而无需过多关注底层的文件I/O操作和编码问题。通过合理的配置和编程,你可以轻松地构建一个健壮的文件上传系统。
"Servlet上传文件并显示进度条"这个主题涵盖了如何在用户上传大文件时提供实时进度反馈,以增强用户体验。在这个过程中,我们需要处理以下几个核心知识点: 1. **Multipart解析器**:Servlet 3.0及以上版本引入了...
在Java Web开发中,JSP(JavaServer Pages)常常用于创建动态网页,配合Servlet处理用户交互,例如文件的上传和下载。本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理...
购物车Servlet是一个在Web开发中常见的应用场景,主要负责处理用户在电子商务网站上的...理解以上这些知识点,将有助于你构建一个功能完善的购物车Servlet,同时具备文件上传功能,满足用户在购物过程中的多样化需求。
通过研究这些代码,你可以更深入地理解Servlet如何处理文件上传和下载,以及如何在实际项目中应用这些技术。 总之,这个项目展示了如何使用Java Servlet来处理常见的Web操作,对于学习和实践Java Web开发具有很高的...
在提供的压缩包文件`servletUpload`中,可能包含了实现上述功能的源代码、配置文件、依赖库以及测试用例。通过阅读和学习这些文件,你可以深入理解如何在实际项目中整合文件上传和图片缩放功能。记得在部署时,确保...
这个“文件上传java测试程序.rar”应该包含了实现上述部分的代码示例,特别是如何在IDEA中配置和运行。通过研究这个示例,你可以了解到如何在实际项目中实现文件上传功能,并根据自己的需求进行调整和优化。
2. **注解驱动的配置**:在Servlet 3.1中,开发者可以通过在类或方法上使用注解来声明Servlet、过滤器和监听器,从而减少了web.xml配置文件的需求。这使得应用的部署和维护变得更加简单,也降低了出错的可能性。 3....
以上就是关于“Tomcat上传下载文件”的知识点,包括了Struts2的文件上传处理、Servlet的文件下载实现以及相关的文件操作。在实际开发中,还需要考虑文件的安全性,例如防止上传恶意文件、限制上传文件大小、保护下载...
运行项目,通过浏览器访问`UploadForm.jsp`页面,选择要上传的文件,点击“Upload”按钮,然后在控制台查看`Servlet`的日志输出,确认文件是否已成功上传。 在实际应用中,你可能还需要处理错误、验证文件类型、...
"servlet上传文件(后)"这个标题暗示我们将探讨的是如何使用Servlet接收并处理客户端上传的文件。这篇博客可能详细解释了文件上传的后端处理过程,包括数据解析、文件保存以及异常处理等环节。 首先,我们需要了解...
在本示例中,"FileUploadServlet"是一个专门处理文件上传的Servlet,让我们详细了解一下如何利用Servlet实现文件上传功能。 首先,我们需要了解Servlet生命周期中的关键方法,如`init()`, `service()`, `doGet()` ...
《jQuery_file_upload-Servlet上传版本》是一个基于jQuery的文件上传解决方案,特别针对Servlet环境进行了优化,解决了在Java平台上常见的文件上传问题,如进度条显示和中文文件名编码问题。这个解决方案使得开发者...
在Java JSP中实现异步上传小文件,通常涉及到AJAX技术、Servlet和前端JavaScript的交互。这个场景中,我们关注的是如何处理最大2MB的文件上传,且该功能已经过实际测试。以下是对这个主题的详细解释: 1. **JSP...
在本文中,我们将深入探讨如何使用RESTEasy和Guice框架实现文件的上传与下载功能。RESTEasy是一个基于Java的RESTful Web服务实现,它与Java EE应用服务器集成,而Guice是Google提供的一款轻量级依赖注入框架,帮助...
在Java编程领域,文件上传和下载是常见的功能需求,尤其在网络应用中,如网页服务器、B/S架构系统等。这个实例提供了对文件上传下载过程的深入理解和实践操作。以下是关于"Java文件上传下载实例(含详细注释)"的详细...