js原生上传文件图片等条件判断

js原生上传文件图片等条件判断

效果图

代码

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

<!DOCTYPE html>
<html lang="zh-Hant">

<head>
    <meta charset="UTF-8">
    <title>上传demo</title>
    <style>
        img {
            height: 100%;
            margin: 0 auto;
        }
    </style>
</head>

<body>
    <input type="file" name="file" onchange="verificationPicFile(this)">
    <!-- 不需要展示上传图片的去掉下面div  -->
    <div style="width: 300px; height: 150px; border: 1px solid black;">
        <img id="imgs" src="" alt="">
    </div>
    <script>
        function verificationPicFile(file) {
            let fileTypes = {   // 定义上传类型定义成对象需要其他类型文件直接按格式添加
                jpg: true,
                png: true,
                jpeg: true,
                PNG: true,
                // txt: true,  添加例子
            };
            if (file.value) {     //判断上传内容是否为空
                let size = file.files[0].size / 1024; //获取上传数据大小
                if (!fileTypes[file.value.substring(file.value.lastIndexOf(".") + 1)]) {  //截取上传文件格式进行判断
                    file.value = "";
                    document.getElementById("imgs").src = ""; // 不需要展示上传图片的去掉这行代码
                    alert('不接受此文件类型');
                    return false;
                }
                if (size > 1024) {
                    file.value = "";
                    document.getElementById("imgs").src = ""; // 不需要展示上传图片的去掉这行代码
                    alert('文件大小不能大于1M!');
                    return false;
                }
                let reader = new FileReader();
                reader.onload = function (e) {
                    // 创建form表单添加二进制图片数据
                    let form = new FormData();
                    form.append('imgFile', file.files[0])
                    // 调接口示例
                    fetch('/upload', {
                        method: 'POST',
                        body: form
                    })
                    .then(response => response.json()) // 如果服务器返回JSON
                    .then(data => console.log(data))
                    .catch(error => console.error(error));
                    // 文件判断的下面代码不需要
                    let image = new Image();
                    image.onload = function () {
                        if (image.width != 4096 && image.height != 2302) {
                            file.value = "";
                            document.getElementById("imgs").src = "";
                            alert("文件尺寸应为:295*413(像素)!");
                            return false;
                        } else {
                            document.getElementById("imgs").src = e.target.result;
                        }
                    };
                    image.src = e.target.result; 
                    // 到这里结束
                };
                reader.readAsDataURL(file.files[0]);
            } else {
                return false;
            }
           
        }
    </script>
</body>

</html>
var foo = 'bar';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值