原生JS使用input上传图片

 使用Jquery上传头像  new formData来完成file上传

   <form action="" id="forms">
         <h3>
              <span>头像</span>
              <a href="javascript:;">
                  <img src="../img/login/user.png" alt="" class="myimg">
                     <div class="change">
                       更换头像
                       <input type="file" name="logo" class="logo">
                     </div>
              </a>
           </h3>
    </form>
        $('.logo').change(function () {
            // console.log(1);
            // console.log($("#forms")[0]);
            $.ajax({
                url: 'http://localhost:5555/txy/uploadimg',
                type: 'post',
                data: new FormData($("#forms")[0]),
                dataType: 'json',
                headers: { //通过请求头将jwt数据发送到服务端
                    Authorization: localStorage.myjwt
                },
                // processData 处理数据
                processData: false, //设置jquery不处理表单数据
                contentType: false, //设置jquery不处理表单编码
                success(d) {
                    console.log(d);
                    if (d.status == 200) {
                        //将原有头像更换成最新头像
                        $(".myimg").attr('src', d.data.filePath);
                    }
                },
                error(e) {
                    console.log(e);
                }

            });
        });

    <!-- 
        注意:当表单中含有<input type="file">文件上传的表单项,则要把表单的编码设置为流媒体格式才能把用户选择的要上传的文件内容上传到服务器上
     -->
    <form enctype="multipart/form-data">
        <div>帐号:<input type="text" name="username"></div>
        <div>密码:<input type="password" name="password"></div>
        <div>密码:<input type="password" name="repassword"></div>
        <div>头像:<input accept=".gif,.png,.jpg,.jpeg" type="file"></div>
        <div><input type="submit" value="注册"></div>
    </form>

 默认情况下,enctype的值是application/x-www-form-urlencoded,不能用于文件上传,只有使用了multipart/form-data,才能完整的传递文件数据

利用blob上传图片

注意

1.响应类型  blob字节流  xhr.responseType = 'blob'

2.创建url对象 var url = window.URL   var blob =  new Blob([响应数据])

3.创建a标签设置herf属性    通过URL.createObjectURL(blob)可以获取当前文件的URL

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值