您的位置:首页 > 编程语言 > Java开发

struts2上传文件upload(单文件上传)

2014-01-05 16:30 183 查看


JSP页面设置:

<body>
<form action="upload.action" method="post"
enctype="multipart/form-data">
<input type="file" name="filename">
<br />
<input type="submit" value="上传">
</form>
</body>

Action的编写方式,默认情况下上传大小为2M可以通过配置文件进行调整



public class Upload extends ActionSupport {
// Struts会自动清空临时空间当中的文件,如果不自动清空的话可以调用方法手动清理掉myFile.delete()
private File filename; // 上传的临时文件
private String filenameFileName;// 文件名
private String filenameContentType;// 文件类型

public File getFilename() {
return filename;
}

public void setFilename(File filename) {
this.filename = filename;
}

public String getFilenameFileName() {
return filenameFileName;
}

public void setFilenameFileName(String filenameFileName) {
this.filenameFileName = filenameFileName;
}

public String getFilenameContentType() {
return filenameContentType;
}

public void setFilenameContentType(String filenameContentType) {
this.filenameContentType = filenameContentType;
}

@Override
public String execute() throws Exception {

String parent = ServletActionContext.getServletContext().getRealPath(
"/upload");
String path = filenameFileName;// 目标
File file = new File(parent, path);
FileUtils.copyFile(filename, file);

// TODO Auto-generated method stub
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>
<!-- 该属性指定需要Struts2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。 -->
<constant name="struts.action.extension" value="do" />
<!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->
<constant name="struts.serve.static.browserCache" value="false" />
<!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->
<constant name="struts.configuration.xml.reload" value="true" />
<!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->
<constant name="struts.devMode" value="true" />
<!-- 默认的视图主题 -->
<constant name="struts.ui.theme" value="simple" />
<!--<constant name="struts.objectFactory" value="spring" />-->
<!--解决乱码    -->
<constant name="struts.i18n.encoding" value="UTF-8" />
<!-- 指定允许上传的文件最大字节数。默认值是2097152(2M) -->
<constant name="struts.multipart.maxSize" value="10701096"/>
<!-- 设置上传文件的临时文件夹,默认使用javax.servlet.context.tempdir -->
<constant name="struts.multipart.saveDir " value="d:/tmp" />

<package name="upload" namespace="/" extends="struts-default">
<action name="*_upload" class="com.ljq.action.UploadAction" method="{1}">
<result name="success">/WEB-INF/page/message.jsp</result>
</action>
</package>

<package name="upload2" extends="struts-default">
<action name="upload2" class="com.ljq.action.UploadAction2" method="execute">
<!-- 动态设置savePath的属性值 -->
<param name="savePath">/images</param>
<result name="success">/WEB-INF/page/message.jsp</result>
<result name="input">/upload/upload.jsp</result>
<interceptor-ref name="fileUpload">
<!--  配置上传文件的允许的文件类型 -->
<param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg</param>
<!-- 允许上传的文件扩展名 -->


<param name="allowedExtensions"></param>


<!-- 文件大小, 以字节为单位 -->
<param name="maximumSize">1025956</param>
</interceptor-ref>
<!-- 默认拦截器必须放在fileUpload之后,否则无效 -->
<interceptor-ref name="defaultStack" />
</action>
</package>
</struts>









                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息