画家王原:自己总结struts2上传文件步骤

来源:百度文库 编辑:偶看新闻 时间:2024/04/27 23:13:39

单文件上传分三步:

第一步:在WEB-INF/lib下加入commons-fileupload-1.2.1.jar(struts2.1版本后需要添加此包),commons-io.1.3.2.jar两个jar包

第二步:

把form表单的enctype属性设置为:multipart/form-data.如下:

      

 

第三步:在action类中添加以下属性:属性中红色部分对应表单中文件字段的名称。

public  class UploadFileAction{

       private File  uploadImage;//得到上传的文件

       private String  uploadImageContextType;//得到文件的类型

       private String  uploadImageFileName;//得到文件的名称

//省略了属性的set、get方法

public  String upload() throws Exception{

//定义上传文件的存放目录/images。如果不定义则默认是放在当前站点的temp目录下,应用一关闭,目录会被删除

       String realpath = ServletActionContext.getServletContext().getRealPath(“/images”);

       File file = new File(realpath);

       if(!file.exits()){

file.mkdirs();

}

//FileUtils类存在于commons-io.1.3.2.jar包中

//前面参数表示源文件,后面的表示目标文件

       FileUtils.copyFile(uploadImage,new File(file, uploadImageName));

return SUCCESS;

}

}

 

思考:如果要上传大容量文件,因struts2默认的上传最大文件大小为2M,所以,如可上传超过2M的文件,需要修改它的默认配置文件的常量。需要在struts.xml文件中增加一句:

 

修改后,就可以上传10M大小的文件了。

 

 

多文件上传分三步:

第一步:在WEB-INF/lib下加入commons-fileupload-1.2.1.jar(struts2.1版本后需要添加此包),commons-io.1.3.2.jar两个jar包

第二步:

把form表单的enctype属性设置为:multipart/form-data.如下:

      


 

第三步:在action类中添加以下属性:属性中红色部分对应表单中文件字段的名称。

public  class UploadFileAction{

       private File[]  uploadImages;//得到上传的文件,定义为数组或List类型都可以

       private String[]  uploadImagesContextType;//得到文件的类型, 定义为数组或List类型都可以

       private String[]  uploadImagesFileName;//得到文件的名称, 定义为数组或List类型都可以

//省略了属性的set、get方法

public  String upload() throws Exception{

//定义上传文件的存放目录/images。如果不定义则默认是放在当前站点的temp目录下,应用一关闭,目录会被删除

       String realpath = ServletActionContext.getServletContext().getRealPath(“/images”);

       File file = new File(realpath);

       if(!file.exits()){

file.mkdirs();

}

       for(inti=0;i

       File  uploadImage = uploadImages[i];

//FileUtils类存在于commons-io.1.3.2.jar包中

//前面参数表示源文件,后面的表示目标文件

       FileUtils.copyFile(uploadImage,new File(file, uploadImagesName[i]));

}

return SUCCESS;

}

}