springmvc图片的本地上传和存放数据库

    /**
     * 图片上传
     */
@RequestMapping("/doUploadFile")
public ModelAndView doUploadFile(HttpServletRequest request,
                                 HttpServletResponse response, HttpSession session)
        throws Exception, IOException {

    // 转型为MultipartHttpRequest:
    MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
    // 获得文件:
    MultipartFile file = multipartRequest.getFile("image");
    // 获得文件名:
    String filename = file.getOriginalFilename();

    InputStream input = file.getInputStream();
    // String path = "D:/goodsImages";下边这个path是写在配置文件里边的,方便修改,这个方法很长但或得的结果就是路劲D:/goodsImages
    String path = "http: //192.168.1.120/GoodsExchange/img";
    File savePath = new File(path);
    if (!savePath.exists()) { // 文件夹
        savePath.mkdir();
    }
    SaveFileFromInputStream(input, savePath.toString(), filename);
    hibsaveImage(savePath.toString(), filename);
    System.out.println("+++++++++++++++++++"+request.getRequestURI());
    String result = "上传成功!";
    ModelAndView modelAndView = new ModelAndView("test");
    modelAndView.addObject("result", result);
    modelAndView.addObject("filename", filename);
    return modelAndView;
}

    public void SaveFileFromInputStream(InputStream stream,String path,String filename) throws IOException
    {
        FileOutputStream fs=new FileOutputStream( path + "/"+ filename);
        byte[] buffer =new byte[1024*1024];
        int bytesum = 0;
        int byteread = 0;
        while ((byteread=stream.read(buffer))!=-1)
        {
            bytesum+=byteread;
            fs.write(buffer,0,byteread);
            fs.flush();
        }
        fs.close();
        stream.close();

    }
    /**
     * hibernate保存图片到数据表
     */
    @Transactional(readOnly = false)
    public void hibsaveImage(String filename, String path) {//GoodsPic为图片实体类,path为图片所在磁盘的路径
        Goods gp = new Goods();
        ModelAndView model = new ModelAndView();
        System.out.println("<<<<<<<<<<<<<<<<<"+path);
        try {
            InputStream in = null;
            in = new FileInputStream( filename + "/"+ path );
            byte[] b = new byte[in.available()];
            in.read(b);
            in.close();
            gp.setPics(b);
            gp.setUrls("wwwwwwwwwwwwww");
            String result = (iGoodsService.insertSelective(gp) ==1)?"添加成功": "添加失败";
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
<bean
      id="multipartResolver"
      class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
</bean>

<form name="uploadForm" id="uploadForm" method="post" action="${ctx}/Goods/doUploadFile"
      enctype="multipart/form-data">
    <input type="file" name="image" /><br/>
    <input type="submit" value="上传" class="btn4" />
</form>

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值