上传图片并在页面回显图片

这是根据自己写的一个教师管理系统实现的

由于主要用在头像上,把上传的头像存储到本地

为了方便,设置一个虚拟地址:

然后添加虚拟路径和实际路径即可

前台:

<div class="pic" style="opacity: 1">
                    <a id="apic" href="/teacherImage/${sessionScope.teacher.tpic}"><img  alt="教师照片"  style="opacity: 1"  width=90px height=90px id="pic" src="/teacherImage/${sessionScope.teacher.tpic}"/></a>
               </div>
               <div class="tlbl">
               <form id="picUpload" method="post" enctype="multipart/form-data">
                   <input type="file"  name="picUploadFile" onchange="uploadPic()"/>
                   </form>
               </div>

 js代码:

function uploadPic(){
         var formData = new FormData($('#picUpload')[0]);
         $.ajax({
             type: 'post',
             url: "teacher/uploadPic.action",
             data: formData,
             cache: false,
             processData: false,
             contentType: false,
         }).success(function (data) {
             if(data !== $("#apic").attr("href")){
                 $("#apic").attr("href",data);
                 $("#pic").attr("src",data);
                 alert("头像上传成功!");
             }
             else{
                 alert("图片上传失败!");
             }
         }).error(function () {
             alert("上传失败");
         });
    }

后台:

@RequestMapping(value="/teacher/uploadPic", produces=MediaType.TEXT_PLAIN_VALUE+";charset=utf-8")
    @ResponseBody
    public String uploadFile(MultipartFile picUploadFile,HttpServletRequest request) throws Exception{
            //获取原头像地址
            Teacher teacher = (Teacher) request.getSession().getAttribute("teacher");
            String pic = teacher.getTpic();
            //判断文件是否为图片
            String originalFileName = picUploadFile.getOriginalFilename();
            String houzhui = originalFileName.substring(originalFileName.lastIndexOf("."));
            if(!houzhui.equals(".jpg")&&!houzhui.equals(".png")) {
                return "/teacherImage/"+pic;
            }
            
            //上传文件
            String newFileName = UUID.randomUUID()+houzhui;
            File newFile = new File(picUrl,newFileName);
            picUploadFile.transferTo(newFile);
            
            //删除原有头像文件
            String oldPicUrl = picUrl + "/" + pic;
            File picFile = new File(oldPicUrl);
            if(picFile.exists()) {
                picFile.delete();
            }
            
            //把现有文件地址保存
            teacher.setTpic(newFileName);
            request.getSession().removeAttribute("teacher");
            request.getSession().setAttribute("teacher",teacher);
            teacherService.updateTeacher(teacher);
            return "/teacherImage/"+newFileName;
    }

主要实现方法就是上边,如若需要其他需求,可按上边进行更改

猜你喜欢

转载自www.cnblogs.com/ITDreamer/p/9696662.html