网页制作
  • CMS教程
  • 网络编程
  • 软件编程
  • 脚本语言
  • 数据库
  • 服务器
  • 返回主页
  • CSS/HTMLCMS建站Dreamweaver教程心得技巧MsSqlMysqlmariadboracleDB2mssql2008mssql2005SQLitePostgreSQLMongoDBdedecms帝国cmsWordPressdiscuzphpcmsecshopz-blogUcHomeUCenterphpwind JavaScriptASP.NETPHP编程正则表达式AJAX相关ASP编程JSP编程编程问答CSS/HTMLFlexC语言C#教程vbvb.netJava编程DelphiJavaAndroidIOSSwift vbsDOS/BAThtahtcpythonperl游戏相关VBA远程脚本ColdFusionMsSqlMysqlmariadboracleDB2mssql2008mssql2005SQLitePostgreSQLMongoDB

    JavaScript

    当前位置:主页 > 网络编程 > JavaScript >

    vue实现移动端图片上传功能

    来源:本站原创|时间:2022-11-25|栏目:JavaScript|

    本文实例为大家分享了vue实现移动端图片上传的具体代码,供大家参考,具体内容如下

    <template>
     <div class="box">
      <div class="upDiv">
        {{labTex}} //标题
        //上传按钮
        <input ref="uploadInput"
            type="file"
            class='upinp'
            name="file"
            value=""
            accept="image/gif,image/jpeg,image/jpg,image/png"
            @change="selectImg($event)"/>
      </div>
      //显示上传图片的区域
      <div :class="operationShow?'operation-div':'operation-div hide'">
          <img class="shoImg" :src="imgDefault">
      </div>
     </div>
    </template>
    <script>
    export default {
      props: {
        value:{
          type:String ,
          default:''
        },
        labTex:{
          type:String ,
          default:''
        },
        imgDefault:{
          type:String ,
          default:''
        }
      },
      data() {
        return {
          dataUrl: '',
          defaultImg:''
        }
      },
      mounted() {
        console.log(this.value)
        console.log(this.labTex)
      },
      // input的change回调第一个参数是event对象
      methods: {
        selectImg(e){
         const imgFile = e.target.files[0];
          if (imgFile)
          {  
            this.operationShow=true
            if(this.checkFile(imgFile)){
              this.upload(imgFile);
            }
          }
        
        },
        checkFile(file){
          //文件为空判断
          if (file === null || file === undefined) {
            alert("请选择您要上传的文件!");
            return false;
          }else{
            return true;
          }
          let size = Math.floor(file.size / 1024);
          // 这个条件还得改
          if (size!=0) {
            return true;
          }else{
            return false
          }
        },
        upload(file){
           try {
            let self = this;
            var result='';
            //执行上传操作
            var xhr = new XMLHttpRequest();
            xhr.open("post", ApiUrl+"/member/image/upload", true);
            xhr.onreadystatechange = function () {
              if (xhr.readyState == 4) {
                if (xhr.status == 200) {
                  let returnData = $.parseJSON(xhr.responseText);
                  if (!returnData) throw new Error("上传失败SERVER");
                  if (!returnData.code) throw new Error("上传失败SERVER")
                  if (returnData.code == 200) {
                    alert("上传成功")
                    //显示图片地址
                    self.$emit('change-img',returnData.name);
                    self.defaultImg = returnData.url;
                  } else {
                    alert("上传失败SERVER")
                  }
                  console.log(""+returnDate)
                } else {
                  alert("上传失败")
                }
              };
            };
            var token = getMemberToken();
            //表单数据
            var fd = new FormData();
            fd.append("token", token);
            fd.append("file", file);
            //执行发送
            result = xhr.send(fd);
          } catch (e) {
            console.log(e);
            alert(e);
          }
        }
      }
    }
    </script>
    <style>
    .box {
      height: 11rem;
      margin-top: 0.5rem;
    }
    .upDiv{
      position:relative;
      height:1.2rem;
      width:100%;
      margin-bottom:0.08rem;
      width:5.5rem;
      text-align: center;
      z-index:10;
      font-size: 0.6rem;
      padding: 0 0.2rem;
      border-radius: 0.2rem;
      border-radius: 0.4rem;
      color: #fff;
      border: none;
      height: 1.2rem;
      line-height: 1.2rem;
      display: inline-block;
      background: #0097ffd9;
    }
    .operation-div{
      width: 15rem;
      height: 9.2rem;
    }
    .operation-div img{
      width:100%;
      height:100%;
    }
    .upDiv .upinp{
      position:absolute;
      left:0px;
      right:0px;
      right:0px;
      bottom:0px;
      z-index:1;
      opacity:0;
    }
    .shoImg{
      width:15rem;
      border-radius:0.05rem
    }
    </style>

    在页面当中的使用:

    <upload-img 
       :lab-tex="`上传         正面`"
        :img-default="imgFourDefault"
        v-on:change-img="chooseFourImg"
    ></upload-img>

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

    更多JavaScript

    您可能感兴趣的文章

    阅读排行

    本栏相关

    随机阅读

    网页制作CMS教程网络编程软件编程脚本语言数据库服务器

    如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

    联系QQ:835971066 | 邮箱:835971066#qq.com(#换成@)

    Copyright © 2002-2020 工商注册核名查询系统 版权所有