网上看了一大堆的文章,试了都没有效果。后面自己慢慢摸索,找到了解决办法。只要使用FileUtils.copyFile(File a,File b), 而不是使用自己写文件输入输出流。便可以解决问题。上传文件,即使重启tomcat,文件还要保留,不被删除。话不多说,先贴代码。
Action代码
package com.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Random;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import org.json.simple.JSONObject;
public class upload extends BaseAction {
//附件表需要url(路径+文件名)和文件名两个值
private List<File> file;
//文件名
private List<String> fileFileName;
private List<String> fileContentType;
//Url+文件名
// private String saveUrl;
public List<File> getFile() {
return file;
}
public void setFile(List<File> file) {
this.file = file;
}
public List<String> getFileFileName() {
return fileFileName;
}
public void setFileFileName(List<String> fileFileName) {
this.fileFileName = fileFileName;
}
public List<String> getFileContentType() {
return fileContentType;
}
public void setFileContentType(List<String> fileContentType) {
this.fileContentType = fileContentType;
}
public String upload() throws Exception{
for(int i=0;i<file.size();i++){
// InputStream is=new FileInputStream(file.get(i));