今天碰到一个关于servlet下载时,如果文件名称为中文,那么下载下来的文件名就会出点问题,今天似乎解决了这个问题,记录下:
package com.test; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class TestServlet extends HttpServlet{ /** * */ private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest arg0, HttpServletResponse response) throws ServletException, IOException { response.setContentLength(22); response.setContentType("application/x-download"); String filename = "测试中文.java"; filename = new String(filename.getBytes("GBK"),"ISO8859_1"); response.setHeader("Content-disposition", "attachment; filename=\"" + filename + "\""); try{ OutputStream os = response.getOutputStream(); FileInputStream fis = new FileInputStream("D:\\Documents\\App.java"); byte[] b = new byte[1024]; int i = 0; while ((i = fis.read(b)) > 0) { os.write(b, 0, i); } fis.close(); os.flush(); os.close(); }catch(Exception ex){ ex.printStackTrace(); } } }
相关推荐
在处理文件上传和下载时,Struts2可能会遇到一个常见的问题,即中文文件名的乱码问题。这是因为不同的系统和软件对字符编码的支持不同,尤其是涉及到网络传输时,编码的兼容性尤为重要。 在“struts2 中文文件名...
在Java编程中,遇到“java下载时文件名乱码”的问题通常是由于编码不一致或处理不当造成的。在处理文件下载时,尤其是从Web服务器下载带有非ASCII字符的文件名时,这种问题尤为常见。让我们深入探讨这个问题,并提供...
例如,早期的IE浏览器版本对中文文件名处理存在问题,可能需要额外的编码转换。在使用上述方法解决中文文件名乱码问题时,还需要考虑浏览器兼容性,确保在不同的浏览器上都能正确显示文件名。 总结来说,通过设置...
这里,`downloadServlet`是处理下载请求的Servlet,`filename`参数传递要下载的文件名。 5. **统计下载** 如果需要统计下载次数,可以在Servlet中添加一个全局变量或使用数据库记录下载信息。每次处理完下载请求...
以上步骤完成后,Struts2应该能正确处理包含中文文件名的上传和下载操作,避免乱码问题。不过,需要注意的是,不同的服务器环境、浏览器版本或客户端设置可能会影响到文件名编码的处理,因此在实际应用中可能还需要...
- 对`filename`进行了编码转换,这是因为浏览器传递过来的文件名可能包含中文或其他非英文字符,需要正确地解码和编码以避免乱码问题。 5. **文件下载逻辑**: ```java @SuppressWarnings("deprecation") ...
在这个特定的实例中,我们利用Smart框架来实现文件的上传和下载功能,同时解决了中文文件名的问题。Smart是一个轻量级的Java Web框架,它简化了处理HTTP请求和响应的过程,特别适合于文件操作。 首先,我们需要理解...
5. **Struts配置**:在Struts 1.2中,你需要在struts-config.xml文件中定义Action,配置Action的forward,指向处理下载的Servlet或JSP。同时,可能还需要配置拦截器(interceptors)来处理表单验证和其他业务逻辑。 ...
这段代码展示了如何在Java Spring MVC框架下处理文件下载时中文文件名和空格的问题。通过适当地编码和设置`Content-Disposition`头,可以确保文件名在各种浏览器上都能正常显示和保存。同时,要注意,实际应用中还...
标题中的“jspSmartUpload上传中文文件名乱码问题”是一个常见的技术挑战,特别是在处理Web应用程序时,特别是那些涉及用户上传文件的场景。JSP Smart Upload是早期流行的一个用于Java Web应用的文件上传组件,它...
在开发Java Web应用程序时,尤其是使用JSP技术时,可能会遇到一些与字符编码相关的难题,尤其是在处理包含中文的文件名时。这个问题的核心在于URL编码和服务器的配置。当我们在JSP页面中创建一个链接指向一个包含...
在Servlet3.1中,文件上传变得更加简单,`Part`接口用于处理单个文件或文件字段,支持文件名、大小和内容类型等属性的获取,以及方便的删除和流化操作。 8. **MIME类型映射**: 通过`@MultipartConfig`注解,...
本篇将详细介绍如何在Servlet中处理URL传递中文参数的情况。 首先,了解URL编码的基本原理。URL编码是将非ASCII字符转换为%xx形式的ASCII序列,其中xx是该字符在UTF-8编码中的前两个十六进制数字。在Java中,可以...
上述代码中,`fileURL`应当是通过其他方式获取的实际文件路径或名称,然后通过`href`属性设置为包含文件名的请求路径,从而触发服务器端的文件下载处理。 #### 后台处理逻辑 服务器端采用Servlet技术进行文件下载...
在处理跨域请求时,特别是涉及中文字符时,可能出现乱码问题。为了解决这个问题,我们需要确保在Servlet中正确设置字符编码。 在Servlet中,可以覆盖`doPost`或`doGet`方法,并设置请求和响应的编码: ```java ...
**JSPSMARTUPLOAD** 是一个专门针对中文文件名下载问题设计的Java库,它解决了在JSP(Java Server Pages)环境中处理中文文件名时可能出现的乱码或无法识别的问题。这个库的核心在于能够正确地编码和解码中文字符,...
总结,"超强过滤器"是解决JSP-Servlet之间中文参数GET-POST传递问题的有效手段,通过统一设定请求的字符编码,确保在整个Web应用中中文数据能够正确无误地传输和处理。对于大型项目,这样的全局解决方案可以大大提升...
《jQuery_file_upload-Servlet上传版本》是一个基于jQuery的文件上传解决方案,特别针对Servlet环境进行了优化,解决了在Java平台上常见的文件上传问题,如进度条显示和中文文件名编码问题。这个解决方案使得开发者...
本篇文章将深入探讨如何使用JSP与Servlet进行文件上传,并特别关注如何解决中文文件名乱码的问题。 首先,我们需要理解文件上传的基本流程。当用户在JSP页面上选择文件并提交表单时,JSP会将文件数据封装到HTTP请求...