1.コンバートbase64でブロブ
[ - クライアントのBASE64から直接提出OSSサポートは絵にそれを保存し、符号化 - ]
BLOBに// ** dataURL ** 関数dataURLtoBlob(dataurl){ デバッガ VAR ARR = dataurl.split( '')、MIMEの=のARR [0] .match(/:?(*); /)[1] 、 BSTR = ATOB、N = bstr.length、u8arr =新しいUint8Array(N)([1] ARR)。 一方、(N--){ u8arr [N] = bstr.charCodeAt(N)。 } 新しいブロブ([u8arr]、{タイプ:MIMEを})を返します。 } // ** dataURLにBLOB ** 関数blobToDataURL(BLOB、コールバック){ VARのA =新規FileReader()。 a.onload =関数(E){コールバック(e.target.result)。}。 a.readAsDataURL(BLOB)。 } VAR _file = dataURLtoBlob(C); // C就是BASE64字符串 // Blob_test()。 Blob_test(){機能 VARブロブを、 (もし!window.Blob) console.log( '不支持'); 他の ブロブ= _file。 IF(window.URL){ のdocument.getElementById( "はmyBody")。innerHTMLの=「<aダウンロードhref="' + window.URL.createObjectURL(blob) +'" target="_blank">文件下载する</a> 「; } } Blob_test()
2.ブロブのアップロードOSS
VARフォーム=新しいいるFormData() form.append( '署名'、this.ossData.signature) form.append( 'アクセスキー'、this.ossData.accessKey) form.append( 'ポリシー'、this.ossData.policy) 形.append( 'キー'、キー) VAR _fileBlob = dataURLtoBlob(BASE64)// Cの就是のbase64で字符串 form.append( 'ファイル'、_fileBlob) するvar reqは=新しいXMLHttpRequestを() req.open( 'ポスト'、これ。 actionUrl、偽) req.send(フォーム)