/**
* 附件下载
* @param dlPath 文件绝对路径
* @throws Exception
*/
public void dl(String dlFilePath) throws Exception{
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse)context.getExternalContext().getResponse();
ServletContext servletContext = (ServletContext)context.getExternalContext().getContext();
String fileFullName = servletContext.getRealPath(dlFilePath);
File file = new File(fileFullName);
if(file.isDirectory() || !file.isFile()) return;
response.setContentType("application/x-msdownload");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=\"" + DataUtil.encodeFileName(file.getName())+"\"");
response.getOutputStream().write(DataUtil.fileToByte(file));
response.getOutputStream().flush();
context.responseComplete();
}
分享到:
相关推荐
### Java实现文件下载并解决中文文件名乱码 在日常的Web开发中,经常会遇到需要让用户下载文件的需求,尤其是在企业级应用中。然而,在实际操作过程中可能会遇到一个常见问题:当文件名包含中文字符时,下载后的...
本文将深入解析如何在JSP中实现文件下载,并解决中文文件名乱码的问题。 首先,我们需要了解HTTP协议在处理文件下载时的角色。当用户请求下载一个文件时,服务器需要设置响应头来指示浏览器如何处理这个响应。在JSP...
在处理文件上传和下载时,Struts2可能会遇到一个常见的问题,即中文文件名的乱码问题。这是因为不同的系统和软件对字符编码的支持不同,尤其是涉及到网络传输时,编码的兼容性尤为重要。 在“struts2 中文文件名...
自IIS 5和IIS 6版本起,该软件就已具备了支持中文路径的能力,这意味着可以在URL或文件系统路径中使用中文字符,而不必担心编码或显示问题。这一特性极大地提升了IIS在全球范围内的适用性和用户体验,尤其是对于中文...
在Java编程中,文件下载是常见的任务之一,特别...通过以上步骤,你可以实现一个基本的Java文件下载功能,并解决中文文件名乱码的问题。对于更复杂的应用场景,如大文件分块下载、断点续传等,还需要进一步优化和扩展。
在这个Eclipse工程实例中,我们将探讨如何使用`jspsmartupload`来实现文件和图片的上传,同时确保文件保存路径中的中文字符不会出现乱码问题。 首先,`jspsmartupload`库解决了文件上传过程中的一些常见问题,如...
1. **定位文件**:首先,你需要根据文件名或文件路径找到文件的实际位置。这可能涉及到数据库查询或文件系统的遍历,以获取文件的完整路径。 2. **获取输入流**:一旦找到了文件,你需要创建一个`InputStream`,从...
2. 解决中文文件名乱码: 在返回文件流前,设置响应头的`Content-Disposition`,并编码文件名,如: ```java response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName,...
在处理包含中文或其他非ASCII字符的文件名或路径时,如果不进行适当的编码转换,可能会导致文件名乱码、路径无法识别等问题。特别是在HTTP协议中,所有数据传输都需要遵循特定的格式标准,因此对于非英文路径的处理...
在Web开发过程中,经常遇到的一个问题是当用户尝试下载包含中文字符的文件名时,会出现乱码的情况。这是因为不同的浏览器处理文件名编码的方式有所不同,导致服务器端设置的文件名在客户端显示不正确。本文将详细...
关于中文文件名乱码问题,除了上述的URL编码方法,还可以使用`Content-Disposition`头来传递文件名,但这种方法的兼容性可能不如URL编码好。`Content-Disposition`头的格式通常是`attachment; filename*=UTF-8''...
在处理文件下载时,可能会遇到中文文件名乱码的问题,这主要是由于字符编码不一致导致的。以下是对这个问题的详细分析及解决方案: 首先,问题出现在文件列表的展示和下载链接的生成过程中。在Action中,`request....
5. **处理编码问题**:JSpsmart实例中特别注意了文件名乱码问题,确保文件名在上传和下载过程中保持正确。 ### 二、JSpsmart工作流程 1. **初始化SmartUpload对象**:在JSP或Servlet中创建SmartUpload实例,并进行...
例如,限制可下载的文件类型或路径,防止恶意用户访问敏感资源。 总的来说,Struts2通过Action和Result的配置提供了便捷的文件下载功能。在处理中文文件名时,需注意文件名的编码问题,确保其在不同环境下的正确性...
下面是一段示例代码,演示了如何使用Servlet来实现文件下载并解决中文文件名乱码: ```java import java.io.*; import javax.servlet.ServletException; import javax.servlet.http.*; public class ...
在Java Web开发中,由于编码不一致或者处理不当,经常会导致中文字符在上传或下载过程中出现乱码,`jspsmartupload.jar` 的作用就是解决这个问题。 在处理文件上传时,`jspsmartupload.jar` 实现了以下关键功能: ...
本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理。下面我们将深入探讨这个主题。 首先,文件上传通常涉及到HTTP协议中的multipart/form-data类型表单。在JSP中,我们...
### 文件下载及Web文件的ContentType类型详解 在Web开发中,处理文件下载是常见的需求之一。为了确保用户能够正确地下载文件并且...此外,还需注意编码问题,例如中文文件名的乱码问题,这同样会影响用户的下载体验。
在给定的代码中,使用了`HttpUtility.UrlEncode`方法对文件名进行URL编码,这是防止文件名乱码的有效方式,因为URL编码可以将特殊字符转换为ASCII可表示的形式。 以下是代码的详细解读: 1. 定义一个名为`...