1、Tomcat服务器不能下载 .apk类型文件
Android的APK安装包不能下载或下载文件是以 .zip为后缀名而不是 .apk为文件后缀名时,需在 Tomcat 的 web.xml 配置文件中加入以下 MIME 类型:
<mime-mapping> <extension>apk</extension> <mime-type>application/vnd.android.package-archive</mime-type> </mime-mapping>
2、Struts2 实现文件下载并解决中文文件名乱码问题
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="download" namespace="/" extends="struts-default"> <action name="apk" class="downloadAction"> <result type="stream"> <!-- contentType 指定下载文件的文件类型 —— application/octet-stream 表示无限制 --> <param name="contentType">application/vnd.android.package-archive</param> <!-- inputName 流对象名 —— 这里写inputStream,它就会自动去找Action中的getInputStream方法 --> <param name="inputName">inputStream</param> <!-- contentDisposition 使用经过转码的文件名作为下载文件名",将调用该Action中的getFileName方法 --> <param name="contentDisposition">attachment;filename="${fileName}"</param> <!-- bufferSize 下载文件的缓冲大小 --> <param name="bufferSize">4096</param> </result> </action> </package> </struts>
DownloadAction.java
package com.chu.web.action.info; import java.io.InputStream; import java.net.URLEncoder; import org.apache.struts2.ServletActionContext; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; @Controller @Scope("prototype") public class DownloadAction { private String fileName; public void setFileName(String fileName) { this.fileName = fileName; } public String getFileName() { /*String fileName = null; try { //解决中文文件名乱码问题 fileName = URLEncoder.encode("文件下载.apk", "UTF-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return fileName;*/ return URLEncoder.encode(fileName", "UTF-8");//解决中文文件名乱码问题 } public InputStream getInputStream() { return ServletActionContext.getServletContext().getResourceAsStream("/WEB-INF/download/xxxxx.apk"); } public String execute(){ return "success"; } }
对于以中文命名的文件,下载时提示框中文件名如果出现乱码问题,可使用 URLEncoder.encode(fileName", "UTF-8" ); 进行URL编码,即可解决下载时显示的中文文件名乱码问题。
相关推荐
不同 struts2.dtd
解决中文乱码的问题
之前,为中文文件名出现乱码在google上搜索是大量资源,说的很好,但都未能通过验证。此次认真阅读,上机调试终于通过。
welogic struts2文件下载中文件名乱码:在tomcat中是好的哦
struts2.x所有包及配置文件
Struts 2.x权威指南(第3版)
解决中文文件名问题,使用解决方法,文件名编码:ISO8859-1
Struts2漏洞检查工具Struts2.2019.V2.3
专为multipart请求信息使用的org.apache.struts2.dispatcher.multipart.MultiPartRequest解析器接口(文件上传用) struts.multipart.saveDir The directory to use for storing uploaded files 设置存储上传...
struts1.x和struts2.x区别
struts2.doc文件,关于自定义标签和struts2解析
struts2.pdf 文件大小:251k struts2的精华
Struts1.x常用的开发包,需要学习struts1.x朋友可以下载
书写struts.xml时候使eclipse拥有代码提示功能必要的DTD文件struts-2.3.dtd及Key
struts2实现文件上传。解决中文url和中文文件名乱码问题
在struts2中解决页面中出现的乱码问题,写在web.xml中
struts.xml文件配置解释,对action配置进行说明
struts2的struts.properties配置文件详解
基于java的开发源码-Struts验证码插件 JCaptcha4Struts2.zip 基于java的开发源码-Struts验证码插件 JCaptcha4Struts2.zip 基于java的开发源码-Struts验证码插件 JCaptcha4Struts2.zip 基于java的开发源码-Struts...
org.apache.struts2.dispatcher.FilterDispatcher