Struts2 实现文件上传

单个文件上传

关于如何创建Struts2项目:Struts2 初体验。

一、创建jsp页面:

注意!要上传文件,表单必须添加 enctype 属性,如下: enctype=”multipart/form-data”

index.jsp 代码如下:

pageEncodingInsert title here

二、创建Action类:

1. 添加三个私有字段,并添加相应的get,set方法。

  private File file; ——上传的文件,变量名对应页面上”file”input的name属性值。类型为java.io.File

  private String fileContentType;——上传文件的格式类型名,变量名格式为:页面上”file”input的name属性值+ContentType

  private String fileFileName——上传的文件名,变量名格式为:页面上”file”input的name属性值+fileFileName。

2. 使用struts2提供的FileUtils类拷贝进行文件的拷贝。FileUtils类位于org.apache.commons.io包下。

3. 在项目目录下的WebContent目录下添加 upload 文件夹,用于存放客户端上传过来的文件,对应第15行代码。

Upload.java代码如下:

1 import java.io.File; 2 import java.io.IOException; 3 import org.apache.commons.io.FileUtils; 4 import org.apache.struts2.ServletActionContext; 5 import com.opensymphony.xwork2.ActionSupport;Upload extends ActionSupport{ 8private File file; 9private String fileContentType;10private String fileFileName;1112 @Override13public String execute() throws Exception {String target=ServletActionContext.getServletContext().getRealPath(“/upload/”+fileFileName);File targetFile=new File(target); {20 FileUtils.copyFile(file, targetFile);21} catch (IOException e) {22 e.printStackTrace();23 }24return SUCCESS;25 }}

三、在struts.xml中添加相应的配置代码。

struts.xml代码如下:

DOCTYPE struts PUBLIC”-//Apache Software Foundation//DTD Struts Configuration 2.3//EN””http://struts.apache.org/dtds/struts-2.3.dtd”index.jsp

四、测试。

启动服务器,进入index页面。

选择一改图片,点击上传提交表单。

打开upload文件夹(注意,这里指的是web服务器下的目录,如我用的web服务器是tomcat安装在电脑D盘,项目名称为“Struts2Upload”那么其路径为:D:\apache-tomcat-7.0.40\webapps\Struts2Upload\upload)可以看到刚才选中的图片已经上传到该目录下了。

上传多个文件

一、修改页面文件

增加继续添加按钮和addfile() 方法,让页面可以通过javascript增加 input 标签。

修改后的 index.jsp代码如下:

addfile(){);;;).appendChild(file);));15 }Insert title here

二、修改Action类

1. 把三个私有字段(file,fileContentType,fileFileName)的类型更改为数组或集合类型。并添加相应的get,set方法。

2. 通过循环来上传多个文件。

修改后的Upload.java代码如下:

import java.io.File;import java.io.IOException;import org.apache.commons.io.FileUtils;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class Upload extends ActionSupport{ File[] file;private String[] fileContentType;private String[] fileFileName;@Overridepublic String execute() throws Exception {(int i=0;i<file.length;i++){//得到上传文件在服务器的路径加文件名String target=ServletActionContext.getServletContext().getRealPath(“/upload/”+fileFileName[i]);//获得上传的文件File targetFile=new File(target); {FileUtils.copyFile(file[i], targetFile);} catch (IOException e) {e.printStackTrace();}}return SUCCESS;}//省略set,get方法……………….}

三、测试

1. 启动服务器,打开index.jsp页面。点击继续添加,添加两个input。同时上传三张图片。

2.点击上传提交表单。打开upload文件夹,可以看到刚才选中的三张图片已经上传到该目录下了。

,走自己的路,让别人说去吧

Struts2 实现文件上传

相关文章:

你感兴趣的文章:

标签云: