JavaWeb实现图片异步上传,在前台展示,并以二进制保存到数据库

通过(ajaxFileupload.js)提供的ajaxFileUpload方法,异步上传图片,在后台获取并转二进制先存入session中,成功后返回图片的id到ajax,并通过jQuery改变 img src的地址请求该图片的二进制资源。

二次上传会覆盖前一次保存在session中的对象,确定保存后会把session中的对象保存到出数据库中。就可以通过id来请求数据库中的图片二进制资源。

  • 代码示例spring+hibernate(前端依赖jquery.js,ajaxFileUpload.js)
  • 前台HTML代码
    <%-- 图片展示 src为默认图片资源--%
    <img id="upload" class="pointer img-rounded" alt="点击上传" src="../../../resources/img/upload.jpg" width="100%">
    <%-- 图片上传 -->
    <input id="upfile" style="display: none" type="file" name="upfile">

  • JavaScript

     /**
             * 上传图片
             */
             $("#upload").on('click',function(){
                 $("#upfile").click();
             });
           
            $("#upfile").on("change",upfile);
    
            function upfile(){
                $.ajaxFileUpload({
                    secureuri:false,
                    url:"upImg.aj",
                    dataType:"json",
                    //fileElementId是img标签的id
                    fileElementId:'upfile',
                    success:function(data){
                        //上传成功后改变<img>标签的src地址,id参数其实不需要,主要是为了刷新img的图片资源。
                        $("#upload").attr("src","getCurImg.aj?id="+data.message);
                        //重新绑定事件,防止二次上传时失效
                        $("#upfile").on("change",upfile);
                    }
                });
            }
  • 后台Controller

    /**
    	 * 上传图片到session
    	 * @param response
    	 * @param request
         */
    	@RequestMapping(value = "/upImg.aj", method = RequestMethod.POST)
    	public void upImgSession(HttpServletResponse response, HttpServletRequest requ
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值