`
wmj2003
  • 浏览: 99700 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

struts2文件上传下载及乱码问题解决

阅读更多
java和jsp文件的编码都是UTF-8 的

文件下载

private String inputPath;<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

public void setInputPath(String value) throws UnsupportedEncodingException {

inputPath = new String(value.getBytes("ISO-8859-1"),"UTF-8");

}

public InputStream getInputStream() throws Exception {

if(log.isDebugEnabled()){

log.debug("inputPath="+inputPath);

}

return new java.io.FileInputStream(inputPath);

// return ServletActionContext.getServletContext().getResourceAsStream(inputPath);

//使用上面的语句将无法获取到inputStream,如果资源恰好在web应用下面,则是可以的。

}

/**

* 下载日志文件

* @return

* @throws Excepiton

*/

public String download () throws Exception{

String fileName = inputPath.substring(inputPath.lastIndexOf(java.io.File.separator)+1, inputPath.length());

if(log.isDebugEnabled()){

log.debug("fileName="+fileName);

}

ServletActionContext.getResponse().setHeader("Content-Disposition", "attachment; filename="+new String(fileName.getBytes("gb2312"),"iso-8859-1"));

return SUCCESS;

}

注意:第一个转换,"ISO-8859-1"————"UTF-8" UTF-8是根据你自己的编码来处理
第二个转换,"gb2312"————"iso-8859-1" 你就不要改变了,不管你是什么编码,都这么处理就是了,只要你的客户用的是中文的操作系统,呵呵

配置文件的内容

<action name="download" class="com.work.qxgl.loglogin.LogLoginAction"

method="downloadLogs">

<result name="success" type="stream">

<param name="inputName">inputStream</param>

<param name="bufferSize">4096</param>

</result>

</action>

下载设置

<a href='<s:url action="download" namespace="/qxglloglogin"><s:param name="inputPath" value="filePath" /></s:url>'><s:property value="fileName" /></a>

文件上传

public File getUpload() {

return upload;

}

public void setUpload(File upload) {

this.upload = upload;

}

// since we are using <s:file name="upload" .../> the file name will be

// obtained through getter/setter of <file-tag-name>FileName

/**

* 如果表单域为fj,那么就叫getFjFileName;

* @return

*/

public String getUploadFileName() {

return fileName;

}

public void setUploadFileName(String fileName) {

this.fileName = fileName;

}

// since we are using <s:file name="upload" ... /> the content type will be

// obtained through getter/setter of <file-tag-name>ContentType

/**

* 如果表单域为fj,那么就叫getFjContentType

* @return

*/

public String getUploadContentType() {

return contentType;

}

public void setUploadContentType(String contentType) {

this.contentType = contentType;

}

在配置文件中限制上传文件的格式

< action name ="fileUpload" class ="tutorial.FileUploadAction" >
< interceptor-ref name ="fileUpload" >
< param name ="allowedTypes" >
image/bmp,image/png,image/gif,image/jpeg
</ param >

</ interceptor-ref >

< interceptor-ref name ="defaultStack" />

< result name ="input" > /FileUpload.jsp </ result >

< result name ="success" > /ShowUpload.jsp </ result >
</ action >

分享到:
评论

相关推荐

    Struts2文件上传下载 中文乱码

    在Struts2框架中,文件上传和下载是常见...以上就是关于Struts2文件上传下载及处理中文乱码问题的详细解析。在实际开发中,需要根据具体项目环境和需求进行相应的调整和优化,确保文件操作的正确性和字符编码的一致性。

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

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

    struts2上传下载 解决中文文件名乱码

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

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

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

    Struts上传,已经处理好乱码问题

    首先,我们需要了解Struts文件上传的基本原理。在Struts中,文件上传是通过`Commons FileUpload`库来实现的,它是Apache Commons项目的一部分,专门处理HTTP请求中的多部分数据,包括文件上传。在Struts的ActionForm...

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

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

    struts 2. 5.2解决中文乱码

    7. **文件上传**:在处理文件上传时,如Struts 2的`FileUpload`插件,需要确保文件名的编码正确处理,例如: ```java String fileName = new String(file.getName().getBytes("ISO-8859-1"), "UTF-8"); ``` 通过...

    无中文乱码的Struts上传下载(任意文件上传)

    Struts框架是一款经典的Java Web开发框架,用于构建MVC(模型-视图-控制器)架构的应用程序。在处理文件上传和下载时,Struts...提供的源码和文档资源是实践这些概念的好材料,可以进一步加深对Struts文件操作的理解。

    struts与hibernate实现文件的上传与动态下载

    2. **处理中文文件名**:为了解决中文文件名的乱码问题,可以生成一个基于时间戳的唯一文件名,例如在`getNumberFileName()`方法中。 3. **下载代码**:在Action中,创建一个输入流读取文件,然后通过Servlet的`...

    struts2中文乱码解决Demo

    本DEMO是为了解决Struts2在处理中文输入时可能出现的乱码问题,确保系统能够正确地接收和显示中文字符。 首先,我们要理解乱码产生的原因。在Web应用中,数据的传输通常涉及多种编码方式,如HTTP请求的默认编码通常...

    struts2 文件上传与下载

    在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互时,如允许用户上传个人资料图片或下载文档。本教程将深入探讨如何在Struts2中实现这两个功能,并特别关注解决中文文件名的问题。 首先,我们要...

    Struts2上传下载

    综上所述,理解和掌握Struts2的文件上传和下载机制,以及如何处理中文乱码和文件类型识别问题,对于开发高效、稳定的Web应用至关重要。通过细心的配置和代码编写,可以确保文件操作功能的顺畅运行。

    struts1的文件上传

    本文将深入探讨Struts1中的文件上传,包括单文件上传、多文件上传,以及解决文件名乱码和重名冲突等问题。 1. **文件上传基础** 文件上传是Web应用中常见的一种功能,允许用户从本地电脑上传文件到服务器。在...

    struts2上传下载

    综上所述,Struts2的文件上传下载涉及到前端表单设计、Struts2 Action的编写、文件的服务器存储策略、数据库的设计和操作,以及可能出现的编码问题处理。理解并掌握这些知识点,能帮助开发者在实际项目中实现稳定...

    使用struts2.0上传文件,完全解决了中文乱码问题

    使用struts2.0上传文件,完全解决了中文乱码问题。运行项目前请先在D盘建立个名tmp的文件夹,实例上传的文件将保存在tmp文件夹中。文件大小限制为15M,该示例蛮完整的,有些架包忘删了导致项目有点大。

    struts2带进度条文件上传

    1.struts2 带进度条文件上传 源码 2.源码中有lib 下载后部署马上就能用 3.代码中有详细的注释信息 4.对关键点有详细的解释说明 5.如果谁用起来觉得有问题可在评论留言,留联系方式,我会联系你的 6.非常感谢原创作者...

    struts文件的上传下载功能实现

    本教程将深入探讨如何在Struts框架中实现文件的上传与下载功能,并解决在处理中文文件名时可能出现的乱码问题。 首先,让我们了解文件上传的基本流程。在Struts中,文件上传主要依赖于Apache Commons FileUpload库...

    struts上传(已解决中文问题)

    Struts框架是Java Web开发中常用的MVC框架之一,它为开发者提供了强大的控制层支持,使得Web应用的结构更加清晰。...这个DEMO是一个很好的实践教程,帮助你更好地掌握Struts文件上传和处理中文文件名的方法。

    struts2 中文文件名文件下载

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

Global site tag (gtag.js) - Google Analytics