首先,文件的组成有:
总共有四个文件组成,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