JS判断文件类型,dicom文件格式判断

上代码

根据文件名.后的字母来判断

 (fileName) => {
        return fileName.substr(fileName.lastIndexOf(".") + 1).toLowerCase();
 },

当然也可以写正则

if(!(file.type.indexOf('image')==0 && file.type && /\.(?:jpg|png|gif)$/.test(file.name)) ){  
        alert('图片只能是jpg,gif,png');  
        return ;  
    }  

判断dicom文件

dicom文件是医学的一种文件格式,这里提供一种格式判断方法

     (file) => {
  return new Promise((resolve, reject) => {
      let str = "";
      let reader = new FileReader();
      reader.readAsArrayBuffer(file);
      reader.onloadend = () => {
          let buffer = reader.result;
          if (buffer.byteLength < 133){
              reject();
          } else {
              let view = new Uint8Array(buffer, 128, 4);
              for (let i = 0; i<view.length; i++){
                  str += String.fromCharCode(view[i]);
              }

              if (str === "DICM") {
                  resolve();
              } else {
                  reject();
              }
          }
      };
  });

},

FileReader是W3C提供的一个读取文件的类

它有4种方法可以读取文件

1.readAsArrayBuffer(file):将文件读取为ArrayBuffer。
2.readAsBinaryString(file):将文件读取为二进制字符串
3.readAsDataURL(file):将文件读取为Data URL
4.readAsText(file, [encoding]):将文件读取为文本,encoding缺省值为'UTF-8'

此外,abort()方法可以停止读取文件。

FileReader对象在读取文件后,还需要进行处理。为了不阻塞当前线程,API采用了事件模型,可以注册这些事件:

1.onabort:中断时触发
2.onerror:出错时触发
3.onload:文件成功读取完毕时触发
4.onloadend:文件读取完毕时触发,无论是否失败
5.onloadstart:文件开始读取时触发
6.onprogress:当文件读取时,周期性地触发
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容