JS判断input上传图片的真实类型(非后缀判断)

代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>判断图片类型</title>

    <script type="text/javascript" src="jquery-1.11.3.min.js"></script>
  </head>

  <body>
    <input type="file" multiple="true" id="upload" />
  </body>
  <script type="text/javascript">
   function checkRealMimeType(file, callback) {
        let realMimeType
        let reader = new FileReader()
        //running asynchronously!
        reader.onloadend = function () {
          let arr = new Uint8Array(reader.result).subarray(0, 4)
          let header = ''
          for (let i = 0; i < arr.length; i++) {
            header += arr[i].toString(16)
          }
          console.log(header)
          //在这里可以得到上传图片的真实mintype类型
          //在这里执行你的逻辑,该方法是异步执行
          if (header.indexOf('8950') === 0) {
            realMimeType = 'png'
          } else if (header.indexOf('424d') === 0) {
            realMimeType = 'bmp'
          } else if (header.indexOf('ffd8') === 0) {
            realMimeType = 'jpeg'
          } else {
            realMimeType = null
          }
          console.log(realMimeType)
        }
        reader.readAsArrayBuffer(file)
      }
    $('#upload').on('change', function (e) {
   		checkRealMimeType($('#upload')[0].files[0])
    })
    
  </script>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值