`

Servlet中下载已上传的文件(已测试)

    博客分类:
  • Java
阅读更多

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浏览器下载文件时标题为乱码!

 

 



不设置编码时,下载的文件标题中的中文消失!

 

 

  • 大小: 4.3 KB
  • 大小: 32.4 KB
  • 大小: 8.2 KB
  • 大小: 19.8 KB
分享到:
评论

相关推荐

    文件上传下载servlet自用

    在IT行业中,文件上传下载是Web应用中常见的功能,尤其在服务器端编程中,Servlet扮演着重要的角色。Servlet是Java编程语言中用于扩展服务器功能的接口,它可以在接收到HTTP请求后进行处理,并向客户端返回响应。在...

    servlet实现文件上传下载

    本教程将详细讲解如何使用Servlet实现文件的上传和下载功能,其中涉及到的主要技术点包括Servlet API、Multipart解析以及文件流操作。 首先,我们需要了解Servlet在文件上传中的作用。Servlet在接收到客户端(通常...

    CKEditor 上传文件(Servlet实现)

    在CKEditor的文件上传场景中,Servlet将接收编辑器发送的文件数据,并将其保存到服务器的指定位置。 1. **CKEditor配置**: - 在CKEditor的配置文件(config.js)中,我们需要设置允许上传的文件类型、最大文件...

    用servlet实现了文件上传

    在提供的压缩包文件`servletupLoadFile`中,可能包含了实现上述步骤的完整Servlet代码和相关的配置文件,你可以参考这些文件来理解和学习文件上传的实现。记得根据你的实际需求对代码进行调整和优化。

    在servlet中用SmartUpload进行上传文件

    总之,SmartUpload为在Servlet中实现文件上传提供了便利,使得开发者能够更专注于业务逻辑,而无需过多关注底层的文件I/O操作和编码问题。通过合理的配置和编程,你可以轻松地构建一个健壮的文件上传系统。

    Servlet上传文件并显示进度条

    "Servlet上传文件并显示进度条"这个主题涵盖了如何在用户上传大文件时提供实时进度反馈,以增强用户体验。在这个过程中,我们需要处理以下几个核心知识点: 1. **Multipart解析器**:Servlet 3.0及以上版本引入了...

    jsp文件的上传和下载

    在Java Web开发中,JSP(JavaServer Pages)常常用于创建动态网页,配合Servlet处理用户交互,例如文件的上传和下载。本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理...

    购物车Servlet,有上传

    购物车Servlet是一个在Web开发中常见的应用场景,主要负责处理用户在电子商务网站上的...理解以上这些知识点,将有助于你构建一个功能完善的购物车Servlet,同时具备文件上传功能,满足用户在购物过程中的多样化需求。

    java+Servlet图片上传下载

    通过研究这些代码,你可以更深入地理解Servlet如何处理文件上传和下载,以及如何在实际项目中应用这些技术。 总之,这个项目展示了如何使用Java Servlet来处理常见的Web操作,对于学习和实践Java Web开发具有很高的...

    servlet文件上传(含图片缩放功能)

    在提供的压缩包文件`servletUpload`中,可能包含了实现上述功能的源代码、配置文件、依赖库以及测试用例。通过阅读和学习这些文件,你可以深入理解如何在实际项目中整合文件上传和图片缩放功能。记得在部署时,确保...

    文件上传java测试程序.rar

    这个“文件上传java测试程序.rar”应该包含了实现上述部分的代码示例,特别是如何在IDEA中配置和运行。通过研究这个示例,你可以了解到如何在实际项目中实现文件上传功能,并根据自己的需求进行调整和优化。

    [免费]Servlet3.1规范-使用7z压缩的文件

    2. **注解驱动的配置**:在Servlet 3.1中,开发者可以通过在类或方法上使用注解来声明Servlet、过滤器和监听器,从而减少了web.xml配置文件的需求。这使得应用的部署和维护变得更加简单,也降低了出错的可能性。 3....

    tomcat上传下载文件

    以上就是关于“Tomcat上传下载文件”的知识点,包括了Struts2的文件上传处理、Servlet的文件下载实现以及相关的文件操作。在实际开发中,还需要考虑文件的安全性,例如防止上传恶意文件、限制上传文件大小、保护下载...

    jsp servlet 上传例子 基于 jspsmartupload

    运行项目,通过浏览器访问`UploadForm.jsp`页面,选择要上传的文件,点击“Upload”按钮,然后在控制台查看`Servlet`的日志输出,确认文件是否已成功上传。 在实际应用中,你可能还需要处理错误、验证文件类型、...

    servlet上传文件(后)

    "servlet上传文件(后)"这个标题暗示我们将探讨的是如何使用Servlet接收并处理客户端上传的文件。这篇博客可能详细解释了文件上传的后端处理过程,包括数据解析、文件保存以及异常处理等环节。 首先,我们需要了解...

    FileUploadServlet_javaweb文件上传servlet_

    在本示例中,"FileUploadServlet"是一个专门处理文件上传的Servlet,让我们详细了解一下如何利用Servlet实现文件上传功能。 首先,我们需要了解Servlet生命周期中的关键方法,如`init()`, `service()`, `doGet()` ...

    jQuery_file_upload-Servlet上传版本

    《jQuery_file_upload-Servlet上传版本》是一个基于jQuery的文件上传解决方案,特别针对Servlet环境进行了优化,解决了在Java平台上常见的文件上传问题,如进度条显示和中文文件名编码问题。这个解决方案使得开发者...

    java jsp 异步 上传小文件 最大2M 已测试

    在Java JSP中实现异步上传小文件,通常涉及到AJAX技术、Servlet和前端JavaScript的交互。这个场景中,我们关注的是如何处理最大2MB的文件上传,且该功能已经过实际测试。以下是对这个主题的详细解释: 1. **JSP...

    RESTEasy实现上传下载文件

    在本文中,我们将深入探讨如何使用RESTEasy和Guice框架实现文件的上传与下载功能。RESTEasy是一个基于Java的RESTful Web服务实现,它与Java EE应用服务器集成,而Guice是Google提供的一款轻量级依赖注入框架,帮助...

    Java文件上传下载实例(含详细注释)

    在Java编程领域,文件上传和下载是常见的功能需求,尤其在网络应用中,如网页服务器、B/S架构系统等。这个实例提供了对文件上传下载过程的深入理解和实践操作。以下是关于"Java文件上传下载实例(含详细注释)"的详细...

Global site tag (gtag.js) - Google Analytics