以前,我们实现文件上传的时候,有点小麻烦~~~,但是,利用struts2中的一些组件来实现的话,那是相当简单的!!
好的,不再废话了,进入正题~~
首先,利用struts2来来实现文件上传,首先要用到两个jar包,commons-fileupload-1.3.jar和commons-io.2.0.1.jar
然后呢,struts2使用action来实现文件上传!,该action一般包括3个属性:
[File Name],[File Name]ContentType , [File Name]FileName.
我来解释一下这三个属性:
[File Name]:指的是用来上传的表单组件的name属性值
[File Name]ContentType:指的是上传文件的属性。
[File Name]FileName:指的是上传文件的名字
注意:一般,action中的参数名都是与提交的参数对应的,但是这里并没有[File Name]ContentType , [File Name]FileName这来两个属性,
这是因为,这两个属性是由FileUploadInterceptor这个文件上传拦截器来负责填充的。
同时呢,foem表单的enctype属性值设置为“multipart/form-data”!OK~~~
基本上就这么多注意事项了!!!
我们来看一个例子:
upload.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>struts2文件上传</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" action="uploadAction.action">
<input type="file" name="uploadFile" /><br>
<input type="submit" value="上传文件"/>
<input type="reset" value="重置" />
</form>
</body>
</html>
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="default" extends="struts-default">
<!-- 配置一个默认的action,当action不存在时,自动调用默认的action
注意:此默认action必须放在所有action最上面 -->
<default-action-ref name="dd" />
<action name="dd">
<result>/error.jsp</result>
</action>
<action name="uploadAction" class="com.action.uploadAction">
<result name="success">/upload_suc.jsp</result>
<result name="input">/upload.jsp</result>
</action>
</package>
</struts>
upload_suc.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>上传文件</title>
</head>
<body>
文件名字:${uploadFileFileName}<br>
文件类型:${uploadFileContentType}
</body>
</html>
需要注意的是,要手动在tomcat的项目根目录下先建一个upload文件夹,用来保存上传文件!
我们看一下运行截图:
OK!!!
先到这里了!!至于一些更高级的文件上传配置,如:上传文件类型,大小的限制等,在这里先不再讲了~~有时间再写,没时间就不写了!!
网上查资料去吧!!哈哈~