美文网首页
ajax与文件上传

ajax与文件上传

作者: 北街九条狗 | 来源:发表于2019-06-01 09:19 被阅读0次
    表单部分
    <div class="avatar-add">
    <-- 上传头像 -->
         <p>建议尺寸168*168,支持jpg、png、gif,最大不能超过50KB</p>
         <form id="headupload" action="#" method="post" enctype="multipart/form-data">
             <input type="file" name="headimg" style="width: 72px; position: relative;left: 150px;top: 30px;">
         </form>
         <img src="${pageContext.request.contextPath}/fly-3.0/res/images/avatar/${log_userinfo.headurl}">
         <span class="loading"></span>
    </div>
    
    ajax部分
    $('#headupload').change(function () {
          // FormData这个对象能打包一个表单的所有数据
           let sendData = new FormData($('#headupload')[0]);
            $.ajax({
                 url:'${pageContext.request.contextPath}/user/uploadHead',
                 data:sendData,
                 type : 'post',
                 cache:false,//文件不设置缓存
                 processData: false,//数据不被转换为字符串
                 contentType: false,//上传文件时使用,避免 JQuery 对其操作
                 dataType:"json",
                 success:function (res) {
                     if(res == 0){
                           // 重新加载页面
                            location.reload();
                      }
                      if(res==1){
                         alert("不支持该格式");
                      }
                 },
                error:function () {
                    },
                async:true
          })
    })
    

    后台处理

        @RequestMapping("/uploadHead")//路径
        @ResponseBody//将返回值处理为json
    //注意方法传的参数名字一定要与前台对应不然会报空值
        public int UserUploadHead(MultipartFile headimg, HttpServletRequest request) throws IOException {
    //        文件上传
    //        1.得到文件名字
    //        2.给文件重命名
    //        3.指定保存路径
    //        4.上传
    
            String fileName=headimg.getOriginalFilename();
            UUID uuid=UUID.randomUUID();
            String newFileName=uuid+fileName;
            String path=request.getServletContext().getRealPath("/fly-3.0/res/images/avatar");
            File file1=new File(path);
            if (!file1.exists()){
                file1.mkdirs();
            }
            if(!fileName.endsWith(".jpg") && !fileName.endsWith(".png") &&  !fileName.endsWith(".gif") && !fileName.endsWith(".JPG") &&  !fileName.endsWith(".PNG") &&  !fileName.endsWith(".GIF")){
                return 1;
            }
            // 把文件写到指定路径
            String savePath=path+File.separator+newFileName;
            File finalPach=new File(savePath);
            headimg.transferTo(finalPach);
            System.out.println(finalPach);
            // 2.修改数据库xxxxxxx.jpg
            Userinfo log_userinfo = (Userinfo) request.getSession().getAttribute("log_userinfo");
            log_userinfo.setHeadurl(newFileName);
            System.out.println(newFileName+","+log_userinfo.getUid());
            userinfoService.uploadHeadImg(log_userinfo);
            return 0;
    

    相关文章

      网友评论

          本文标题:ajax与文件上传

          本文链接:https://www.haomeiwen.com/subject/gplotctx.html