返回顶部
首页 > 资讯 > 前端开发 > JavaScript >antdupload上传如何获取文件宽高
  • 901
分享到

antdupload上传如何获取文件宽高

antdupload上传upload获取文件宽高antdupload 2023-02-12 15:02:37 901人浏览 泡泡鱼
摘要

目录antd upload上传获取文件宽高antd上传文件限制大小 React Hooks总结antd upload上传获取文件宽高 项目新加的需求,需要判断上传图片的宽高,查了一下

antd upload上传获取文件宽高

项目新加的需求,需要判断上传图片的宽高,查了一下antd-upload组件貌似不支持这个查询,因此需要使用外部的api

直接上代码:beforeUpload 方法

handleBeforeUpload = async (file, fileList) => {
        const {fileMinSize = 0,fileMinWH,fileMaxWH, fileMaxSize = 50,uploadFORMat = '',uploadFormatError = ''} = this.component.props;
        const isInRange = ((file.size > (fileMinSize * 1024 * 1024)) && (file.size < (fileMaxSize * 1024 * 1024)));
        let isTrueType = true,isFileWH = true;//类型,尺寸
        return new Promise((resolve, reject) =>{
            //校验格式
            if(uploadFormat != ''){
                let acceptArr = uploadFormat.split(',');
                let fileType = file.name.substring(file.name.lastIndexOf('.'));
                if(!acceptArr.includes(fileType)){
                    isTrueType = false;
                    this.message.error((uploadFormatError == '') ? '请上传规则范围内的文件!' : uploadFormatError);
                    this.base.ss({'data.fileList': fileList.pop()});
                }
            }
            //校验大小
 
            if (!isInRange) {//大小的标识
                this.message.error((fileMaxSize == 50) ? '请上传规则范围内的文件!' : '文件最大不能超过'+ fileMaxSize + 'M!');
                this.base.ss({'data.fileList': fileList.pop()});
            }
 
 
            //校验宽高
            
 
            if(fileMinWH && fileMaxWH){//做下过滤有的图片需要过滤
                var reader = new FileReader();
                reader.readAsDataURL(file);
                reader.onload = (e) => {
                    //加载图片获取图片真实宽度和高度
                    var image = new Image();
                    image.src=reader.result;
                    image.onload = () =>{
                        var width = image.width;//图片的宽
                        var height = image.height;//图片的高
                        if(width < fileMinWH  || width > fileMaxWH || height < fileMinWH  || height > fileMaxWH){
                            isFileWH = false;
                            this.message.error('***宽高需要均大于600像素,小于4000像素');
                            this.base.ss({'data.fileList': []});
                            reject();
                        }else{
                            resolve(isFileWH && isInRange && isTrueType)
                        }
                    };
                };
                
            }else{
                resolve(isInRange && isTrueType);
            }
        })
    };

这样这个功能就可以完美的解决了,*包着的代码是最主要的。

antd上传文件限制大小 react Hooks

 const uploadImages = {
        action: requestUrl + '/api/common/CommonUpload',
        headers: {
            SessionKey: `${localStorage.getItem('sk')}`,
        },
        data: (file) => {
            return {
                UploadType: 1027,//后端定义的type
                Id: uuidv4(),
                FileType: getUploadFileType(file),
            };
        },
        beforeUpload: (file) => {// 礼品image
            const limitFileNameLen = 100;
            return new Promise((resolve, reject) => {
                if (file.name && file.name.length > limitFileNameLen) {
                    message.error('Please upload a file with a file name less than 100 characters');
                    //请上传文件名不超过100个字符的文件
                    return Promise.reject();
                }
                const limitM = 2;
                const isLimit = file.size / 1024 / 1024 <= limitM;
                console.log(isLimit);
                if (!isLimit) {
                    message.error('The size exceeds the limit');
                    return Promise.reject();
                }
                return resolve();
            });
        },
    }
模板:
 <Upload
                {...uploadImages}
                accept=".jpeg,.png,.jpg"
                listType="picture-card"
                fileList={fileList}
                onChange={handleChange}
                onPreview={handlePreview}
            >
                {fileList.length >= 4 ? null : uploadButton}
            </Upload>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: antdupload上传如何获取文件宽高

本文链接: https://lsjlt.com/news/195715.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • antdupload上传如何获取文件宽高
    目录antd upload上传获取文件宽高antd上传文件限制大小 react Hooks总结antd upload上传获取文件宽高 项目新加的需求,需要判断上传图片的宽高,查了一下...
    99+
    2023-02-12
    antd upload上传 upload获取文件宽高 antd upload
  • antdupload上传组件如何获取服务端返回数据
    目录antd upload上传组件获取服务端返回数据我是这样解决的antd的upload上传组件uploading状态踩坑记说明总结antd upload上传组件获取服务端返回数据 ...
    99+
    2023-02-12
    antd upload上传组件 upload服务端返回数据 antd upload
  • java如何获取上传文件大小
    在Java中,可以通过使用`File`类或`MultipartFile`类来获取上传文件的大小。1. 使用`File`类获取文件大小...
    99+
    2023-08-23
    java
  • android获取屏幕宽高与获取控件宽高(三种方法)
    1.获取屏幕宽高 方法1: int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏...
    99+
    2022-06-06
    方法 Android
  • jquery如何获取屏幕宽高
    使用jquery获取屏幕宽高的方法:1.使用$(window).width()获取当前窗口可视区域宽度;2.使用$(window).height()获取当前窗口可视区域高度;3.使用$(document).width()获取当前窗口文档对象...
    99+
    2024-04-02
  • jquery如何获取div的宽高
    使用jquery获取div标签宽高的方法:1.新建html项目,引入jquery;2.创建div标签,设置class属性;3.使用width和height属性设置标签宽高;4.添加button按钮,绑定onclick点击事件;5.通过cla...
    99+
    2024-04-02
  • Android编程获取屏幕宽高与获取控件宽高的方法
    本文实例讲述了Android编程获取屏幕宽高与获取控件宽高的方法。分享给大家供大家参考,具体如下: 获取屏幕宽高 // 获取屏幕宽高(方法1) int screenWidth...
    99+
    2022-06-06
    方法 Android
  • jquery如何获取图片的宽高
    使用jquery获取图片宽高的方法:1.新建html项目,引入jquery;2.使用img标签添加图片;3.为图片设置id属性;4.添加button按钮,绑定绑定onclick点击事件;5.通过id获取图片对象,使用height()和wid...
    99+
    2024-04-02
  • jQuery如何获取文档宽度?
    这篇文章将为大家详细讲解有关jQuery如何获取文档宽度?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如何使用 jQuery 获取文档宽度 jQuery 是一个流行的 JavaScript 库,它提供了...
    99+
    2024-04-02
  • SpringMVC中MultipartFile上传获取图片的宽度和高度详解
    SpringMVC一般使用MultipartFile来做文件的上传,通过MultipartFile的getContentType()方法判定文件的类型(MIME)“.doc”:”application/msword”“.jpg”:”imag...
    99+
    2023-05-31
    spring mvc multipart
  • jQuery怎么获取上传文件的名称
    要获取上传文件的名称,可以使用jQuery的`val()`函数来获取文件输入框的值,然后使用JavaScript的`split()`...
    99+
    2023-08-11
    jQuery
  • 小程序如何获取图片宽高
    这篇文章给大家分享的是有关小程序如何获取图片宽高的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  小程序如果不能获取图片宽高,那么图片设置宽高时,就有可能会出现图片变形,要想避免这种情况,除了图片等比例缩放,还可...
    99+
    2023-06-26
  • php上传文件速度如何提高
    要提高php上传文件的速度,可以采取以下几种方法:1. 增加文件上传大小限制:可以通过修改php.ini文件中的upload_max...
    99+
    2023-10-11
    php
  • Android获取文本的宽度和高度
    获取文本宽度 方法一:先绘制文本所在的矩形区域,再获取矩形区域的宽度 Rect rect = new Rect(); mPaint.getTextBounds(text,0,text.length(), rect); ...
    99+
    2023-10-03
    android Powered by 金山文档
  • jQuery如何获取文档高度?
    这篇文章将为大家详细讲解有关jQuery如何获取文档高度?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。jQuery 获取文档高度 使用 jQuery 获取文档高度提供了灵活性和便利性。以下介绍了两种常用...
    99+
    2024-04-02
  • java如何上传文件
    一:准备好前台页面Upload.html表单 action=上传文件后台接口 method=“post”enctype=“multipart/form-data”,文件输入框 二:加入相应的jar包三:准备接收文件Se...
    99+
    2019-03-25
    java基础 java 上传 文件
  • 如何上传php文件
    这篇文章给大家分享的是有关如何上传php文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php文件上传的步骤:首先创建一个文件上传表单;然后创建上传脚本“upload_file.php”文件;接着设置对文件上传...
    99+
    2023-06-14
  • php如何上传文件
    这篇文章主要介绍php如何上传文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流与非主流的数据库。4、面向对象编程:PHP提供了类...
    99+
    2023-06-14
  • 如何UT上传文件
    珍惜时间,勤奋学习!今天给大家带来《如何UT上传文件》,正文内容主要涉及到等等,如果你正在学习Golang,或者是对Golang有疑问,欢迎大家关注我!后面我会持续更新相关内容的,希望都能帮到正在学...
    99+
    2024-04-04
  • Springboot如何获取上下文ApplicationContext
    目录Springboot获取上下文ApplicationContextspringboot的应用上下文ServletWebServerApplicationContext扩展的功能A...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作