package com.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.bean.Image;
import com.dao.ImageDao;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.ServletActionContext;
public class UploadAction extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = 1L;
private final static String file = "files";
private Image image;
private File myFile;
private String myFileFileName;//保存的是上传图片的全名,如:吴江波.jpg
//上传图片
public String upImage(){
System.out.println("上传的文件名为:"+myFileFileName);//打印出:上传的文件名为:如何卸载oracle.txt
String realPath = ServletActionContext.getServletContext().getRealPath(file + "/");
//将上传的图片名称保存到数据库中,但是名字全部统一以当前系统时间命名
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HHmmss");
String end = myFileFileName.substring(myFileFileName.indexOf("."));
String newPhothPath = "/files/"+sdf.format(new Date())+end;//得到图片的新名称
System.out.println(newPhothPath);
Image img = new Image();
image = new Image();
image.setImg_path(newPhothPath);
img.setImg_path(newPhothPath);
ImageDao dao = new ImageDao();
dao.insertImage(img);//将图片的名称保存到数据库
copyFiles(realPath);//将图片保存到服务器下的指定文件夹中
return "showOk";
}
/**
* 把目标文件拷贝到服务器下的指定目录中
* @param realPath
*/
private void copyFiles(String realPath) {
try {
InputStream is = new FileInputStream(myFile);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HHmmss");
String end = myFileFileName.substring(myFileFileName.indexOf("."));
OutputStream os = new FileOutputStream(realPath + "/"+ sdf.format(new Date())+end);
int len = 0;
byte[] b = new byte[is.available()];
while((len = is.read(b)) != -1){
os.write(b, 0, len);
os.flush();
}
is.close();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//--------------------------------------set和get方法--------------------------------------//
public File getMyFile() {
return myFile;
}
public void setMyFile(File myFile) {
this.myFile = myFile;
}
public String getMyFileFileName() {
return myFileFileName;
}
public void setMyFileFileName(String myFileFileName) {
this.myFileFileName = myFileFileName;
}
public Image getImage() {
return image;
}
public void setImage(Image image) {
this.image = image;
}
}