struts2学习(13)struts2文件上传和下载
Posted 有点懒惰的大青年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2学习(13)struts2文件上传和下载相关的知识,希望对你有一定的参考价值。
一、Struts2文件上传:
二、配置文件的大小以及允许上传的文件类型:
三、大文件上传:
如果不配置上传文件的大小,struts2默认允许上传文件最大为2M; 2097152Byte;
例子实现:
com.cy.action.FileUploadAction.java:
package com.cy.action; import java.io.File; import org.apache.commons.io.FileUtils; import com.opensymphony.xwork2.ActionSupport; public class FileUploadAction extends ActionSupport{ private static final long serialVersionUID = 1L; private File struts; //文件,对应fileupload.jsp中input type=file的name private String strutsFileName; //文件名 private String strutsContentType; //文件类型 public File getStruts() { return struts; } public void setStruts(File struts) { this.struts = struts; } public String getStrutsFileName() { return strutsFileName; } public void setStrutsFileName(String strutsFileName) { this.strutsFileName = strutsFileName; } public String getStrutsContentType() { return strutsContentType; } public void setStrutsContentType(String strutsContentType) { this.strutsContentType = strutsContentType; } @Override public String execute() throws Exception { System.out.println("文件名:" + strutsFileName); System.out.println("文件类型:" + strutsContentType); String filePath = "E:/" + strutsFileName; File savefile = new File(filePath); FileUtils.copyFile(struts, savefile); return SUCCESS; } }
struts.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- 配置允许上传文件最大为20000000Byte,约20Mb --> <constant name="struts.multipart.maxSize" value="20000000"></constant> <package name="manage" extends="struts-default"> <action name="upload" class="com.cy.action.FileUploadAction"> <result name="input">fileupload.jsp</result> <result name="success">success.jsp</result> <!-- 配置允许上传的文件类型 配置允许上传的文件大小,最大81101byte,= 79.2KB --> <interceptor-ref name="fileUpload"> <param name="allowedTypes">image/bmp,image/x-png,image/gif,image/jpg,image/jpeg</param> <param name="maximumSize">81101</param> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </action> </package> </struts>
fileupload.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <!-- 显示文件上传错误时,返回的失败信息 --> <s:fielderror></s:fielderror> <form action="upload" method="post" enctype="multipart/form-data"> 选择文件:<input type="file" name="struts" /><br/> <input type="submit" value="提交" /> </form> </body> </html>
success.jsp:
<body> 文件上传成功! </body>
测试结果:
1)配置允许上传的文件类型,和文件大小;
2)配置大文件上传,上面例子中配置了20M左右;
如果不配置大文件上传,上传大于2M的会报错:
------------
以上是关于struts2学习(13)struts2文件上传和下载的主要内容,如果未能解决你的问题,请参考以下文章