解决同样文件不能上传第二次问题

该博客介绍了在上传头像时遇到的同一图片无法更新的问题及其解决方案。通过JavaScript的FileReader API读取文件并将其转换为DataURL,然后设置图片源。同时,清除input元素的value属性以防止再次选择同一文件时不触发change事件。这种方法允许用户重新上传相同的图片并更新显示。
摘要由CSDN通过智能技术生成

解决同样文件不能上传第二次问题

背景:上传头像(图片)时,第二次上传同样的图片,不会改变的问题
解决方案:将上传的路径/文件 清除
html:

<div id="app">
        <input type='file' accept='image/*'  id ='aa' @change='openFile'>
        <img id='output' src="XXX">
   </div>

js:

<script>
 openFile: function(event) {
            var reader = new FileReader();
            var input = event.target;
            var self = this;
            reader.readAsDataURL(input.files[0]); //获取图片的base64码
            reader.onloadend = function() {  //图片加载完成后再执行函数
                var dataURL = reader.result;
                var output = document.getElementById('output');
                 output.src = dataURL;   //或者 src = dataURL; (定义src值的情况下)
                event.target.value = ""  //将文件路径清空 赋值为null也行 文件路径为:C:\fakepath\文件名
            };
</script>

当再次选择同样的图片时,会触发change事件。其实不是同样的图片或者文件,是同样名字的文件(图片);
其中 event.target和event.srcElement是同样的值,若是input框中有id的话,可以直接document.getElementById(‘aa’) = null

FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL。Data URL是一项特殊的技术,可以将资料(例如图片)内嵌在网页之中,不用放到外部文件。使用Data URL的好处是,您不需要额外再发出一个HTTP 请求到服务器端取得额外的资料;而缺点便是,网页的大小可能会变大。它适合应用在内嵌小图片,不建议将大图像文件编码成Data URL来使用。您的图像文件不能够超过浏览器限定的大小,否则无法读取图像文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值