BlobとFileオブジェクトAPIと互換性の問題


先日、ファイルをアップロードしている間に、Blobの対象とFileの対象との関連問題に遭遇しました.資料を調べた結果、次のようになりました.
blob
ブラウザの環境下で、blobに対する参照(ブラウザは自動的に統合されます)を実現できます.しかし、nodeJS環境下でどうやってblob参照を実現しますか?ファイルの着信依存?具体的にどのようにblobを使いますか?
要求:まずNode環境で簡単なファイルをアップロードします.Fileは特別なタイプのBlobであり、APIインターフェースでもあります.
参考サイト:https://stackoverflow.com/questions/15293694/blob-constructor-browser-compatibility
一部のブラウザはblobをサポートしていません.古いBlob Buiderをサポートしています.
SoThe Dessktop Chrome warning wans a bug in rome whirome whirome whihich fixed since 2013-03-21.Mobile Chrome is giving you a TypeEEror because the blob conststststststorortos s s s s s.Blppordededestststststrererererererererererererererededededes.Blablblblblblblbldedededes.Blablblblblbldededededededes.Blablblblblblblblblbleeeeeeeeeeeeeebubububudededes.Blspspspspspspsptrtrs.This is the case for FF 6-12、Chrome 8-19、Mobile Chrome、IE 10 and Android 3.0-42.2.
まずブラウザのバージョンがBlobをサポートしているかどうかを判断します.
var array = new Int8Array([17, -45.3]);

try{
  var jpeg = new Blob( [array], {type : "image/jpeg"});
}
catch(e){
    // TypeError old chrome and FF
    window.BlobBuilder = window.BlobBuilder || 
                         window.WebKitBlobBuilder || 
                         window.MozBlobBuilder || 
                         window.MSBlobBuilder;
    if(e.name == 'TypeError' && window.BlobBuilder){
        var bb = new BlobBuilder();
        bb.append(array.buffer);
        var jpeg = bb.getBlob("image/jpeg");
    }
    else if(e.name == "InvalidStateError"){
        // InvalidStateError (tested on FF13 WinXP)
        var jpeg = new Blob( [array.buffer], {type : "image/jpeg"});
    }
    else{
        // We're screwed, blob constructor unsupported entirely   
    }
}
結論:解決策:blobはいくつかの互換性のある問題(依然として主流のアップロード構造関数)があり、blobbuilderはすでに段階的に淘汰されました.あるいは最新のFoldインターフェースはblobの方法を集めました.
Blob API
Binary large ObjectバイナリオブジェクトデータベースにおけるBlobはバイナリコンテナ(MYSQL)であり、ウェブAPIにおいて、Blobオブジェクトはファイルと同様のバイナリデータを表し、FileオブジェクトはBlobオブジェクトから継承される.
Blobオブジェクトを作成します.Blobパラメータ1:配列タイプパラメータ2:オプション、type、データのタイプconsolie.log(blob 1)を表します.blobオブジェクトを出力するデータを含むバイト数
var blob 2=blob 1.slice(start,end,contentType)新しいBlobオブジェクトを返します.元のオブジェクトに指定された範囲のデータを使用します.大きなファイルを分割してアップロードします.
ファイルオブジェクト
File API
01ブラウザ互換性検査
function isSupportFileApi() {
    if(window.File && window.FileList && window.FileReader && window.Blob) {
        return true;
    }
    return false;
}

02ファイルのハンドルJSを取得するには受動的にファイルを取得するしかありません.ユーザがイベント(ドラッグ・ファイル、フォーム提出)JSをトリガするだけで、ファイルのハンドルを取得できます.ドラッグ・イベントはブラウザを使ってファイルを開くかもしれません.preventDefault or cancalBableが必要です.
03ファイルを読み込むFileReaderはコンポーネントのライフサイクルに似たインターフェースとイベントを提供しています.Filereaderのライフサイクル:onloadstart-onprogress-onload-onalabot-onerror-onloadedはローカルファイルをプレビューし、ローカル画像をプレビューし、読み取りの進捗を監視します.
04ファイルを分割する場合はファイルが大きく、分割して読み込んでアップロードするのが一番いい(断点アップロード)slice方法(会社はこの面でよくやるべき)
関連サイト:
https://developer.mozilla.org/zh-CN/docs/Web/API/Blob
https://www.cnblogs.com/xiaoqian1993/p/5775135.html
https://www.cnblogs.com/leejersey/p/4772504.html
https://segmentfault.com/a/1190000011563430
http://hushicai.com/2014/03/29/html5-du-qu-ben-di-wen-jian.html