码迷,mamicode.com
首页 > 编程语言 > 详细

springmvc之图片上传

时间:2016-06-08 12:01:02      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

1、接收到的是图片的流时

//上传头像
    @RequestMapping(value = "/uploadHeadSculpture", method = RequestMethod.POST)
    @ResponseBody
    public String uploadHeadSculpture(@RequestParam("photo") String file) {
        User user = (User) SecurityUtils.getSubject().getSession().getAttribute("curr_user");
        //获取文件格式
        String postfix = file.split("/")[1].split(";")[0];
        //获取图片的Base64码
        String str = file.split(",")[1];
        String url = "";
        BASE64Decoder decoder = new BASE64Decoder();
        try {
            // Base64解码
            byte[] bytes = decoder.decodeBuffer(str);
            for (int i = 0; i < bytes.length; ++i) {
                // 调整异常数据
                if (bytes[i] < 0) {
                    bytes[i] += 256;
                }
            }
            long title = Calendar.getInstance().getTimeInMillis();
            //获取系统路径并设定文件保存的目录
            String dir = ServiceConfigUtil.getValue("imgpath");//图片的上传路径,我这里是从工程的配置文件获取的
            String fileName = title + "." + postfix;
            // 生成jpeg图片
            FileUtils.writeByteArrayToFile(new File(dir, fileName), bytes);
            String lookUserPhoto = ServiceConfigUtil.getValue("lookUserPhoto");//图片的访问路径,我这里是从工程配置文件获取的,可以自己定义。如果你的图片保存在工程目录下,可以直接用dir+fileName
            url = lookUserPhoto + fileName;//保存到数据库的图片访问路径
            /××
        ×保存url到数据库
       ××/
} catch (Exception e) {return "no"; }return "yes"; }

注:接收参数file值的一个基本格式

  "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAdiUlEQVR........."

2、接收到的是file文件直接上传

 @RequestMapping(value={"/saveOrUpdate"},method=RequestMethod.POST)
 public String saveOrUpdate(Person p, @RequestParam("photo") MultipartFile file, HttpServletRequest request) throws IOException{
     if(!file.isEmpty()){
        ServletContext sc = request.getSession().getServletContext();
         String dir = sc.getRealPath(“/upload”);    //设定文件保存的目录
        
        String filename = file.getOriginalFilename();    //得到上传时的文件名
        FileUtils.writeByteArrayToFile(new File(dir,filename), file.getBytes());
        
        p.setPhotoPath(“/upload/”+filename);    //设置图片所在路径
        
        System.out.println("upload over. "+ filename);
    }    
    ps.saveOrUpdate(p);    
    return "redirect:/person/list.action";   //重定向
}

 参考:springmvc文件上传

springmvc之图片上传

标签:

原文地址:http://www.cnblogs.com/sunjf/p/springmvc_fileupload.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!