IOSに新しいファイル()互換性の問題を解決

ファイルブラウザの互換性の問題を見てください

 

 ソリューション

ブロブは、base64のアップロードに変わります

dataURLtoFile(dataUrl、ファイル名){
     // BLOBのに変わる
    関数dataURLtoBlob(toDataURL){
         VARの ARR = toDataURL.split( "" )、
            MIME [0] .match = ARR :; [(/(*)/。?) 1 ] 
            BSTR =のatoB(ARRの[1 ])、
            N- = bstr.length、
            u8arr = 新しい新しいUint8Array(N-);
         一方(N-- ){ 
            u8arr [N-] = bstr.charCodeAtは、(N-); 
        } 

        VARの BLOB = ヌル; 

        // ブラウザの低いバージョンに対処するには、新しいブロブ()問題ではありません
        試して{
            ブロブ = 新たなBLOB([u8arr]、{タイプ:MIME})。
        } キャッチ(E){
             VAR BlobBuilder = window.BlobBuilder = 
                window.BlobBuilder || 
                window.WebKitBlobBuilder || 
                window.MozBlobBuilder || 
                window.MSBlobBuilder 
            )。

            もし(e.name === "例外TypeError" && BlobBuilder){
                 VARのビルダー= 新しいBlobBuilder()。
                builder.append(u8arr)。
                ブロブ =  builder.getBlob(MIME)。
            } 
        } 

        戻りBLOB; 
    } 

    // ファイルに変える
    機能blobToFile(BLOBファイル名){ 
        Blob.lastModifiedDate = 新しい新しい日付(); 
        Blob.name = ファイル名;
         を返す;ブロブを
    } 

    // 次の呼び出し 
    てみましょう太字= dataURLtoBlob(dataUrl)。
    LETファイル = blobToFile(太字、「ファイル名」); 
    
    // アップロードファイルをすることができ
    、戻りファイル; 
}
// ... 
// 場合は、ビデオ画像フレームの最初の傍受だった
// ファイルがされているビデオファイル
のvar imgfile = that.dataURLtoFile(
    canvas.toDataURL( "画像/ PNG" )、
    file.name.split( "")[ 0] +「の.png」
); 
VARの FD = 新しい新しいいるFormData();
 // 考えられていない有効なイメージファイルを避けるために、接尾辞ここに渡されたファイル名第三引数 
fd.append( 『ファイル』、imgFile 、file.name.split( " ")[0] +"の.png" ); 
$アヤックス({ 
        タイプ: "POST" 
        URL: 'アップロードパス' 
        データ:FD、
        のcontentType:falseに
        PROCESSDATA:  // これら2つのプロパティが保存できない
    })
    .then(RES => { 
        にconsole.log( '成功アップロード' ); 
    })

おすすめ

転載: www.cnblogs.com/223zzm/p/11782667.html