struts 2批量上传文件技术总结,为自己的开发生涯多做一点贡献。

来源:互联网 发布:数据仓库 数据加工 编辑:程序博客网 时间:2024/05/18 14:12

首先,文件的组成有:


总共有四个文件组成,com.fileupload.test.FileUploadUtil        上传utils

                                       com.fileupload.test.UploadAction          上传action 

                                       /fileupload/WebRoot/index.jsp               上传页面

                                     /fileupload/WebRoot/WEB-INF/web.xml   web配置



其中FileUploadUtil 的内容为:

package com.fileupload.test;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.UUID;import org.apache.struts2.ServletActionContext;public  class FileUploadUtil {/** * 给图片起新名字 * @param fileName * @return */public static String newName(String fileName) {int point = fileName.lastIndexOf(".");String ext = fileName.substring(point + 1);return UUID.randomUUID().toString() + "." + ext;}/** * 上传文件到指定路劲 * @param file * @param path * @throws Exception */public static void upfile(File file, String path) throws Exception {int size = 5 * 1024;BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(file), size);BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(path), size);byte[] data = new byte[size];while (inputStream.read(data) > 0) {outputStream.write(data);}outputStream.close();}public static boolean createDir(String destDirName) {    File dir = new File(destDirName);    if(dir.exists()) {     System.out.println("创建目录" + destDirName + "失败,目标目录已存在!");     return false;    }    if(!destDirName.endsWith(File.separator))     destDirName = destDirName + File.separator;    // 创建单个目录    if(dir.mkdirs()) {     System.out.println("创建目录" + destDirName + "成功!");     return true;    } else {     System.out.println("创建目录" + destDirName + "成功!");     return false;    }}public static void main(String[] args) throws Exception {File file=new File("D://1.jpg");upfile(file, "d://tmp//1.jpg");System.out.println("上传成功");}}
action内容为:


package com.fileupload.test;


import java.io.File;
import java.util.List;


import org.apache.struts2.ServletActionContext;


import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport{


private List<File> images;// 文件结合
private List<String> imagesFileName;// 文件名结合

public List<File> getImages() {
return images;
}


public void setImages(List<File> images) {
this.images = images;
}


public List<String> getImagesFileName() {
return imagesFileName;
}


public void setImagesFileName(List<String> imagesFileName) {
this.imagesFileName = imagesFileName;
}


public String upload() throws Exception{
for (int i = 0; i < images.size(); i++) {
String newName = FileUploadUtil.newName(imagesFileName.get(i));
String pathz = ServletActionContext.getServletContext()
.getRealPath("\\upfile\\" + newName);
System.out.println("文件名" + pathz);
FileUploadUtil.upfile(images.get(i), pathz);
}
return null;
}
}

然后通过配置struts进行配置。web.xml配置。就可以实现上传。

原demo的下载地址为::http://download.csdn.net/download/u012115730/9949771

原创粉丝点击