您的位置:首页 > 其它

Structs2或者SSH处理图片上传

2016-01-29 11:08 344 查看
1.在Action中创建变量,用于接收页面提交的图片信息

//上传文件集合
private File file0;
//上传文件集合
private String picUserID; //当前上传头像的用户的ID
//上传文件名集合
private String file0FileName;
//上传文件内容类型集合
private String file0FileContentType;

public String getPicUserID() {
return picUserID;
}

public void setPicUserID(String picUserID) {
this.picUserID = picUserID;
}

public File getFile0() {
return file0;
}

public void setFile0(File file0) {
this.file0 = file0;
}

public String getFile0FileName() {
return file0FileName;
}

public void setFile0FileName(String file0FileName) {
this.file0FileName = file0FileName;
}

public String getFile0FileContentType() {
return file0FileContentType;
}

public void setFile0FileContentType(String file0FileContentType) {
this.file0FileContentType = file0FileContentType;
}

2.编辑action方法,处理图片上传的业务逻辑

/**
* 处理用户上传的头像
* @return
* @throws Exception
*/
public String addEmployeePic() throws Exception {
System.out.println("当前用户ID为:" + picUserID);
Map<String,Object> map = new HashMap<String,Object>();
try {
InputStream in = new FileInputStream(file0);
String dir = ServletActionContext.getRequest().getRealPath("/images/upload/head");
File fileLocation = new File(dir);
System.out.println("文件夹路径为:" + dir);
//此处也可以在应用根目录手动建立目标上传目录
if(!fileLocation.exists()){
boolean isCreated = fileLocation.mkdir();
if(!isCreated) {
//目标上传目录创建失败,可做其他处理,例如抛出自定义异常等,一般应该不会出现这种情况。
System.out.println("创建文件夹失败");
}
}
String fileName = this.getFile0FileName();
// 改变文件名称保证唯一名称
String saveFileName = makeFileName(fileName);
File uploadFile = new File(dir, saveFileName);
OutputStream out = new FileOutputStream(uploadFile);
byte[] buffer = new byte[1024 * 1024];
int length;
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
in.close();
out.close();
System.out.println("文件读写成功");
boolean result = userKissflyService.savePhotoImg("/sshexec/images/upload/head/"+saveFileName,Long.parseLong(picUserID));
System.out.println("图片路径保存成功");
map.put("result",result);
} catch (FileNotFoundException ex) {
System.out.println("上传失败!");
map.put("result",false);
ex.printStackTrace();
} catch (IOException ex) {
System.out.println("上传失败!");
map.put("result",false);
ex.printStackTrace();
}
System.out.println("返回结果map为:" + map.toString());
this.setResult(map);
return "addSUCCESS";
}
/**
* 调整文件名,使之无重复
* @param filename
* @return
*/
public String makeFileName(String filename)
{

return UUID.randomUUID().toString() + "_" + filename;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  图片 ssh