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:當文件讀取時,周期性地觸發
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容