react+ant design 实现限制图片大小,宽高,和格式

// 图片上传限制宽高的函数,如果符合条件返回true,否者返回false

  function checkImageWH(file, width, height) {

    return new Promise(function (resolve, reject) {

      const filereader = new FileReader();

      filereader.onload = (e) => {

        const src = e.target.result;

        const image = new Image();

        image.onload = function () {

          if (width && this.width != width && height && this.height != height) {

            message.error(`请上传宽为${width}px,高为${height}px的图片`);

            resolve(false);

          } else {

            resolve(true);

          }

        };

        image.onerror = reject;

        image.src = src;

      };

      filereader.readAsDataURL(file);

    });

  }

// upload 文件上传之前的钩子函数

  async function beforeUploadImage(file: any) {

    const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';

    if (!isJpgOrPng) {

      message.error('只支持JPG、PNG格式!');

    }

    const isLt5M = file.size / 1024 / 1024 < 5;

    if (!isLt5M) {

      message.error('图片必须小于5MB!');

    }


  const flag = await checkImageWH(file, 1920, 1080)


    return isJpgOrPng && isLt5M && flag ? true : Upload.LIST_IGNORE;

  }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容