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


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>








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值