上传完文件后文件会被自动删除的,解决方法是,在代码中加一个复制文件的命令,让程序把上传好的文件复制到别的地方
package com.how2java.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.UUID;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
public class UploadAction {
File doc;
String docFileName;
String docContentType;
public File getDoc() {
return doc;
}
public void setDoc(File doc) {
this.doc = doc;
}
public String getDocFileName() {
return docFileName;
}
public void setDocFileName(String docFileName) {
this.docFileName = docFileName;
}
public String getDocContentType() {
return docContentType;
}
public void setDocContentType(String docContentType) {
this.docContentType = docContentType;
}
// 复制命令的代码如下:
public static void copyFile(File doc, String destPath){
File srcFile = doc;
File destFile = new File(destPath);
//缓存区,一次性读取1024字节
byte[] buffer = new byte[1024];
try (
FileInputStream fis = new FileInputStream(srcFile);
FileOutputStream fos = new FileOutputStream(destFile);
){
while(true){
//实际读取的长度是 actuallyReaded,有可能小于1024
int actuallyReaded = fis.read(buffer);
//-1表示没有可读的内容了
if(-1==actuallyReaded)
break;
fos.write(buffer, 0, actuallyReaded);
fos.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
*
* @param srcPath 源文件夹
* @param destPath 目标文件夹
*/
// 复制命令的代码以上:
public String upload() {
System.out.println(doc);
//然后在这里加入复制命令的执行如下:
String destPath = “c:/”+docFileName;
UploadAction.copyFile(doc, destPath);
//然后在这里加入复制命令的执行以上:
System.out.println(docFileName);
System.out.println(docContentType);
return "success";
}
}