上傳單個文件
public class UploadAction {
private File image;
private String imageFileName;// 上傳文件名稱,規則前面必須是上傳字段的名稱後面是FileName
// 得到這兩個值之後就要把這兩個值保存到硬盤上,如果不保存到硬盤上的話,這個文件會存放到struts2框架的臨時文件上
private String imageContentType;// 這個同上,這個是上傳文件類型
public String execute() {
String realPath = ServletActionContext.getServletContext().getRealPath("/images");// 相對於站點的目錄,images
System.out.println(realPath);
System.out.println(imageFileName);
if (image != null) {
File saveFile = new File(new File(realPath), imageFileName);// file(directory,name);
if (!saveFile.getParentFile().exists()) {
saveFile.getParentFile().mkdirs();
}
try {
FileUtils.copyFile(image, saveFile);
ActionContext act = ActionContext.getContext();
act.put("result", "上傳成功!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return "success";
}
前臺頁面
<form action="${pageContext.request.contextPath }/uploadImage" method="post" enctype="multipart/form-data">
文件:<input type="file" name="image" />
<input type="submit" value="上傳" />
</form>
上傳多個文件
public class MutiUploadAction {
private File[] images;//定義成數組
private String[] imagesFileName;//定義成數組
public String execute() throws IOException{
String realPath = ServletActionContext.getServletContext().getRealPath("images");
if(images != null){
File savedir = new File(realPath);
if(!savedir.getParentFile().exists()){
savedir.getParentFile().mkdirs();
}
//循環上傳
for(int i = 0; i < images.length; i++){
File saveFile = new File(savedir,imagesFileName[i]);
FileUtils.copyFile(images[i], saveFile);
ActionContext.getContext().put("result", "上傳成功!");
}
}
return "success";
}
前臺頁面
<form action="${pageContext.request.contextPath}/mutiuploadImage" enctype="multipart/form-data" method="post" >
文件1:<input type="file" name="images" /><br/>
文件2:<input type="file" name="images" /><br/>
文件3:<input type="file" name="images" /><br/>
文件4:<input type="file" name="images" /><br/>
文件5:<input type="file" name="images" /><br/>
<input type="submit" value="上傳"/>
</form>