`
wangqiang6028
  • 浏览: 87766 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Struts2 .apk 文件下载及解决中文文件名乱码问题

阅读更多

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上传下载 解决中文文件名乱码

    通过上述实践和调试,我们已经成功解决了Struts2框架下中文文件名上传和下载的乱码问题。在遇到类似问题时,可以按照这些步骤进行排查和修复。记住,关键在于正确配置Struts2的拦截器、请求编码以及在处理文件名时...

    struts 2. 5.2解决中文乱码

    通过以上步骤,一般可以解决Struts 2.5.2框架下的中文乱码问题。但请注意,每个项目可能有不同的配置和需求,因此在实际应用中,还需要根据具体情况进行调试和调整。 在`myStruts`这个压缩包中,可能包含了示例代码...

    welogic struts2文件下载中文件名乱码:在tomcat中是好的哦

    本文将深入探讨在WeLogic服务器中使用Struts2框架进行文件下载时遇到的文件名乱码问题,并提供详细的解决方案。 ### 文件名乱码现象分析 在WeLogic服务器中使用Struts2进行文件下载时,用户可能会遇到文件名显示为...

    struts2 中文文件名文件下载

    在处理文件上传和下载时,Struts2可能会遇到一个常见的问题,即中文文件名的乱码问题。这是因为不同的系统和软件对字符编码的支持不同,尤其是涉及到网络传输时,编码的兼容性尤为重要。 在“struts2 中文文件名...

    struts2文件下载(解决了中文乱码问题)

    在处理文件下载时,Struts2提供了一套完整的解决方案,包括处理中文文件名的乱码问题。在标题提到的场景中,开发者可能遇到了在使用Myeclipse 6.5集成开发环境,JDK1.6和Tomcat 6.0服务器环境下,通过Struts2进行...

    struts2中的批量上传与文件下载(解决中文乱码问题)

    本文将详细介绍如何在Struts2框架下实现批量上传与文件下载,并解决中文乱码问题。 一、Struts2文件上传 1. 配置Struts2文件上传支持: 在struts.xml配置文件中,我们需要添加`&lt;constant&gt;`元素来设置允许上传的...

    不同版本的 struts2.dtd

    - Struts2 DTD 是XML文档类型定义,它规定了struts2配置文件(如struts.xml或struts-default.xml)的语法和元素。这些元素定义了Action、结果、拦截器等配置,使得开发者可以声明式地配置应用行为。 2. **struts-...

    struts2.x所有包及配置文件

    这个压缩包"struts2.x所有包及配置文件"包含了Struts2框架的核心组件、扩展和配置文件,用于构建和管理Java web应用。 1. **核心组件**: - `struts2-core.jar`:这是Struts2框架的基础,包含了Action、Result、...

    struts2的struts.properties配置文件详解

    Struts2的Struts.properties配置文件详解 Struts2是一个基于MVC模式的Web应用程序框架,它提供了一个名为Struts.properties的配置文件,该文件用于配置Struts2的各种参数和设置。下面将对Struts.properties配置文件...

    Struts 2.x权威指南(第3版)

    Struts 2.x权威指南(第3版)

    struts2的中文乱码问题解决

    ### Struts2中文乱码问题解决方案 在使用Struts2框架进行Web开发的过程中,中文乱码问题是一个常见的挑战。这不仅影响用户体验,还可能导致数据不一致等问题。为了解决这一问题,我们需要理解其背后的原理,并采取...

    Struts2.rar文件

    2. **配置文件(Configuration Files)**:Struts2的配置文件通常包括struts.xml或struts.properties,它们定义了Action、结果类型、拦截器栈等。通过配置文件,开发者可以指定Action与URL的映射关系,设置默认结果...

    Struts2的DTD配置文件struts-2.3.dtd

    在Struts2中,`struts.xml`是核心配置文件,它定义了应用的行为、动作、结果和其他组件。为了在Eclipse这样的集成开发环境中获得代码提示和自动完成,我们需要引入DTD(文档类型定义)文件,例如`struts-2.3.dtd`。 ...

    struts2.2.1文件下载及中文乱码问题解决.pdf

    在使用Struts2进行文件下载功能时,可能会遇到中文乱码的问题。本篇主要讨论如何解决Struts2.2.1版本中文件下载时的中文乱码问题,以及相关的配置和实现细节。 首先,文件下载的关键在于设置正确的HTTP响应头。`...

    Struts2下载文件中文乱码处理

    在Web开发中,使用Struts2框架进行文件下载操作时,经常遇到的一个问题是文件名中的中文字符显示为乱码。这主要是因为浏览器和服务器之间的编码不一致所导致的。为了确保用户能够正确地看到文件名中的中文字符,需要...

    struts2.5.14.1最少的jar包

    Struts2是一个非常流行的Java Web开发框架,它基于MVC(Model-View-Controller)设计模式,用于构建高效、可扩展且易于维护的企业级应用程序。Struts2.5.14.1是该框架的一个版本,它引入了若干增强功能和修复了已知...

    struts.xml文件详解.doc

    Struts.xml文件是Apache Struts 2框架的核心配置文件,它用于定义应用程序的行为、Action映射、结果页面、拦截器等关键组件。在深入讲解struts.xml之前,我们先来了解与之相关的struts.properties文件。 struts....

    Struts2.3.15.1版本升级到2.3.32详细流程

    例如,如果在项目根目录下的`struts-default.xml`文件与新版的`struts2-core-2.3.32.jar`中的同名文件有冲突,可以考虑删除根目录下的文件,并将必要的配置项合并到项目内部的`struts-default.xml`文件中。...

    struts2文件上传(解决中文乱码)

    Struts2是一个强大的Java Web...总之,解决Struts2中的中文乱码问题,关键在于配置正确的字符编码,并在文件上传和下载过程中处理好编码转换。通过以上步骤,你可以有效地在Struts2项目中实现对中文URL和文件名的支持。

    Struts课堂笔记.rar--struts2的struts.properties配置文件详解

    专为multipart请求信息使用的org.apache.struts2.dispatcher.multipart.MultiPartRequest解析器接口(文件上传用) struts.multipart.saveDir The directory to use for storing uploaded files 设置存储上传...

Global site tag (gtag.js) - Google Analytics