Structs2或者SSH处理图片上传

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;
    }



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值