头像修改功能的实现

头像修改功能的实现

  1. 介绍
    本文编写了前端和后端,一起实现了上传图片同步显示并且通过后端保存图片到本地目录。
  2. 前端修改图片按钮样式
    功能实现:首先设置原本的文件选择器不显示,也就是display:none;然后写下图片img标签,定义图片的大小,加一个点击事件,点击后执行隐藏了的图片选择器的功能,最后设置一个图标,在图片上面,编写事件,当时鼠标在图片内的时候,图标显示,不在的时候,隐藏,另外还要编写一个开启页面,默认图标隐藏的方法,因为刚打开页面的时候,浏览器会默认显示图标(可能是浏览器默认鼠标开始在图片内)。
    展示效果:
    在这里插入图片描述
    点击图片后(鼠标移动到头像上,会自动出现一个修改的图标在头像上,点击后,会弹出本地的文件,自己选择图片上传)
    在这里插入图片描述

代码如下

		    <div class="imgcontent" >
		        <input type="file" class="file" name="file" style="display: none;"/>
				<span id="img">
					<img src="img/login.jpeg"  id="uimg" class="img" width="50px"height="50px" οnclick="javascript:$('.file').click();"/>
				</span>
				<span class="glyphicon glyphicon-pencil" id="upd"style="position: relative;top: -36px;left: 16px;font-size: 20px;" οnclick="javascript:$('.file').click();"></span>
		    </div>
	//选择图片随后同步显示
	$('.file').change(function (e){
		var imgurl = window.URL || window.webkitURL;
		var file,img;
		if(file = this.files[0]){
			img = new Image();
			img.onload = function(){
				$('.img').attr('src',this.src);
			}
			img.src = imgurl.createObjectURL(file);
		}
	})
	//默认隐藏
	window.onload = function(){
		$('#upd').hide();
	}
	//鼠标移出隐藏
	$('.imgcontent').mouseout(function(){
		$('#upd').hide();
	})
	//鼠标移入显示
	$('.imgcontent').mouseover(function(){
		$('#upd').show();
	})	
		

  1. 后台存储图片信息
    功能实现:
    本文是使用表单来点击确认修改后,上传图片,后台需要使用到java中的File类,以及FileOutputStream写入图片。首先,我们需要在前端的form标签中写下enctype=“multipart/form-data” enctype是指编码类型,multipart/form-data是指表单数据有多部分构成,既有文本数据,又有文件等二进制数据,然后在controller层的提交方法中传入参数 @RequestParam(value = “file”) MultipartFile file,具体的解释看代码注释部分。
    功能展示(点击图片,弹出文件夹,选择图片):
    在这里插入图片描述
    选择完后
    在这里插入图片描述
    点击修改(后台输出图片名字以及存储后的位置)
    在这里插入图片描述
    查看该目录是否成功保存图片
    在这里插入图片描述
    成功!!
    代码
    前端代码与上面的差不多,因此不重复放了
    后端代码如下
@RequestMapping("/img")
    public String myimg(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request) throws IOException {

        //获取文件名称
        String fileOrigName = file.getOriginalFilename();
        System.out.println(fileOrigName);
        //设置文件存储路径
        String filepath = "D:/idea/blog/src/main/resources/static/imgfile/"+fileOrigName;
        try{
            File targetFile = new File(filepath);
            if(targetFile.exists()){
                //判断该文件是否存在
                System.out.println("exists!!!");
                return "/img";
            }
            //判断文件目录是否存在
            if(!targetFile.getParentFile().exists()){
                //文件路径不存在就创建路径
                targetFile.getParentFile().mkdirs();
                System.out.println("mkdir file");
            }
            try {
                if (!targetFile.exists()){
                    //再次判断,写入文件
                    targetFile.createNewFile();
                    FileOutputStream outputStream = new FileOutputStream(targetFile);
                    byte[] bytes = file.getBytes();
                    outputStream.write(bytes);
                    outputStream.close();
                }
                else{
                    System.out.println("img is exists!!!");
                }
                System.out.println(filepath);
            }catch (IOException e){
                e.printStackTrace();
            }
            return "/img";
        }catch (Exception e) {
            e.printStackTrace();
        }
        return "/img";
    }
  • 8
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
实现更改用户头像功能,可以按照以下步骤进行: 1. 创建一个上传头像的页面,包括一个表单和一个文件上传控件。 2. 在后台Controller中编写一个方法,用于处理头像上传请求。方法应该接收上传的文件,将其保存到服务器上,并将头像路径保存到数据库中。 3. 在用户个人信息页面中,添加一个显示头像的区域,从数据库中读取头像路径并显示头像。 4. 在用户个人信息页面中,添加一个更改头像的按钮,点击按钮将跳转到上传头像的页面。 下面是一个简单的示例代码: 1. 上传头像页面(uploadAvatar.jsp): ``` <form action="uploadAvatar" method="post" enctype="multipart/form-data"> <input type="file" name="avatarFile"> <input type="submit" value="上传头像"> </form> ``` 2. 处理头像上传请求的Controller方法: ``` @RequestMapping("/uploadAvatar") public String uploadAvatar(@RequestParam("avatarFile") MultipartFile file, HttpSession session) { // 将上传的文件保存到服务器上 String filePath = saveAvatarFile(file); // 将头像路径保存到数据库中 userService.updateAvatarPath(filePath, session.getAttribute("userId")); return "redirect:/userInfo"; } ``` 3. 用户个人信息页面(userInfo.jsp): ``` <div> <img src="${user.avatarPath}"> </div> ``` 4. 更改头像按钮: ``` <a href="uploadAvatar">更改头像</a> ``` 在上面的代码中,需要自己实现 `saveAvatarFile` 和 `updateAvatarPath` 方法,分别用于保存上传的头像文件和更新用户的头像路径。同时还需要根据自己的实际情况修改相应的参数和代码细节。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

☆叙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值