Struts 2之文件上傳
如果要獲得上傳文件的原始名稱,需要定義一個String類型的屬性,屬性名必須為***FileName,其中***為File屬性的名稱;同理,如果要獲取該文件的MIME類型,需要定義一個***ContentType的String屬性
單個文件上傳
public class UploadAction extends ActionSupport{
private File image; //上傳的文件
private String imageFileName; //文件名稱
private String imageContentType; //文件類型
public String execute() throws Exception {
String realpath =ServletActionContext.getServletContext().getRealPath("/images");
FileOutputStream fos = null;
FileInputStream fis = null;
try {
// 建立文件輸出流
System.out.println(getSavePath());
fos = new FileOutputStream(realpath+ "\\" + getImageFileName());
// 建立文件上傳流
fis = new FileInputStream(getImage());
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer))> 0) {
fos.write(buffer, 0, len);
}
} catch (Exception e) {
System.out.println("文件上傳失敗");
e.printStackTrace();
} finally {
close(fos, fis);
}
return SUCCESS;
}
public File getImage() {
return image;
}
public void setImage(File image) {
this.image = image;
}
public String getImageFileName() {
return imageFileName;
}
public void setImageFileName(String imageFileName) {
this.imageFileName = imageFileName;
}
public String getImageContentType() {
return imageContentType;
}
public void setImageContentType(String imageContentType) {
this.imageContentType =imageContentType;
}
} </pre> <br />
多個文件上傳
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class TagUploadListAction extends ActionSupport {
private static final long serialVersionUID= 1L;
private String name;
// 上傳多個文件的集合文本
private List<File> upload;
// /多個上傳文件的類型集合
private List<String> uploadContextType;
// 多個上傳文件的文件名集合
private List<String> uploadFileName;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<File> getUpload() {
return upload;
}
public void setUpload(List<File> upload) {
this.upload = upload;
}
public List<String> getUploadContextType() {
return uploadContextType;
}
public void setUploadContextType(List<String> uploadContextType) {
this.uploadContextType =uploadContextType;
}
public List<String> getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(List<String> uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String execute() {
// 把上傳的文件放到指定的路徑下
String path =ServletActionContext.getServletContext().getRealPath("/WEB-INF/uploadList");
// 寫到指定的路徑中
File file = new File(path);
// 如果指定的路徑沒有就創建
if (!file.exists()) {
file.mkdirs();
}
// 把得到的文件的集合通過循環的方式讀取并放在指定的路徑下
for (int i = 0; i < upload.size();i++) {
try {
//list集合通過get(i)的方式來獲取索引
FileUtils.copyFile(upload.get(i), new File(file,uploadFileName.get(i)));
} catch (IOException e) {
// TODO Auto-generated catchblock
e.printStackTrace();
}
}
return SUCCESS;
}
} </pre> <br />
本文由用戶 n672 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!