Upload组件上传限制(宽、高、尺寸、格式)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Upload组件上传限制(宽、高、尺寸、格式)相关的知识,希望对你有一定的参考价值。

参考技术A iview-Upload组件官网链接: https://iview.github.io/components/upload

效果展示

css

.out-box

width: 100%;

border: 1px solid #e6e6e6;

border-radius: 8px;

padding: 20px 20px 10px;



.img-border

border: 1px solid #e6e6e6;

border-radius: 8px;

margin-right: 20px;

width:100px;

height:100px;



.upload-box

width: 100px;

height:100px;

display: inline-block



.upload-inner-box

width: 100px;

height: 100px;

font-size: 40px;

text-align: center;

background: #F5F5F5;



.upload-tip

color:red



template

<div class="out-box">

<img class="img-border" v-if="seeView" :src="this.imageUrl"  />

<Upload ref="uploadFiles"

:show-upload-list="false"

:max-size="5120"

:on-success="handleSuccess"

:on-exceeded-size="handleMaxSize"

:before-upload="beforeUploadImg"

:loading="true"

type="drag"

:format="['jpg','jpeg','png','gif']"

:on-format-error="handleFormatError"

action="url"

class="upload-box">

                <div class="upload-inner-box">

                <div style="padding-top: 20px">+</div>

                <div style="font-size: 12px">请上传图片</div>

</div>

</Upload>

<div class="upload-tip">图片大小勿超5M,尺寸为minWidth*minHeight,勿小于该尺寸,且尽量以该长宽比制图以保证页面效果</div>

</div>

data

seeView:"false",//是否展示已上传的图片

imageUrl:"",//上传图片的url

url:"",//上传的地址

minWidth:number,//最小宽度

minHeight:number,//最小高度

methods

//上传成功

    handleSuccess(response, file, fileList)

      this.imageUrl = response.result;

      this.seeView = true;

    ,

    //上传的文件大小超出要求

    handleMaxSize()

      this.$Modal.warning(

        title: "提示",

        content: "上传缩略图大小不能超过5M!!!",

      );

    ,

    //上传文件格式不符合要求

    handleFormatError()

      this.$Modal.warning(

        title: "提示",

        content: "上传缩略图格式错误!!!",

      );

    ,

    //上传前对图片宽高的检验

    beforeUploadImg(file)

      this.checkImageWidth(file, minWidth).then((checkWidth) =>

        if (checkWidth)

          this.checkImageHeight(file, minHeight).then((checkHeight) =>

            if (checkHeight)

              this.$refs.uploadFiles.post(file);

           

          );

       

      );

      return false;

    ,

    // 异步方法 检验图片宽度

    async checkImageWidth(file, widthCheck)

      let width = await this.getImageWidth(file);

      let checkWidth = width > widthCheck || width == widthCheck;

      if (!checkWidth)

        this.$Notice.warning(

          title: "图片宽度错误",

          desc:

            file.name +

            " 的宽度为" +

            width +

            "px, 请上传宽度大于" +

            widthCheck +

            "px的图片. ",

        );

     

      return checkWidth;

    ,

    // 获取图片宽度

    getImageWidth(file)

      return new Promise((resolve) =>

        const reader = new FileReader();

        reader.readAsDataURL(file);

        reader.onload = function ()

          if (reader.readyState == 2)

            const img = new Image();

            img.src = reader.result;

            img.onload = function ()

              resolve(this.width);

            ;

         

        ;

      );

    ,

    // 异步方法 检验图片高度

    async checkImageHeight(file, heightCheck)

      let height = await this.getImageHeight(file);

      let checkHeight = height > heightCheck || height == heightCheck;

      if (!checkHeight)

        this.$Notice.warning(

          title: "图片高度错误",

          desc:

            file.name +

            " 的高度为" +

            height +

            "px, 请上传高度大于" +

            heightCheck +

            "px的图片. ",

        );

     

      return checkHeight;

    ,

    // 获取图片宽度

    getImageHeight(file)

      return new Promise((resolve) =>

        const reader = new FileReader();

        reader.readAsDataURL(file);

        reader.onload = function ()

          if (reader.readyState == 2)

            const img = new Image();

            img.src = reader.result;

            img.onload = function ()

              resolve(this.height);

            ;

         

        ;

      );

    ,

以上是关于Upload组件上传限制(宽、高、尺寸、格式)的主要内容,如果未能解决你的问题,请参考以下文章

el-upload 上传文件到服务器,上传之前在before-upload中异步判断文件后缀,宽高分辨率,size大小

UEditor 自定义图片视频尺寸校验

uploadify 限制图片尺寸

Ant Design of Vue —— Upload组件 -- beforeUpload(图片宽高限制)

Ant Design of Vue —— Upload组件 -- beforeUpload(图片宽高限制)

element-ui el-upload限制图片格式尺寸及图片