2016-09-19 7 views
0

アップロード画像APIにはバイナリストリームが必要です。私は新しい​​とそのreadAsBinaryString()メソッドを試しましたが、動作しません!バイナリ文字列とバイナリストリームは同じものではありませんようですので、私は私の方法を変更し、readAsDataURL()方法を試してみました(私は、画像をプレビューする必要が原因)と、今私が知りたい:javascriptを使用してbase64をバイナリストリームに変換するにはどうすればよいですか?

1)バイナリにbase64を変換する方法ストリームを使用してjs

私はreadAsBinaryString()を使用する場合、応答は以下の(データA)のようになります。

binary_string

しかし、APIはこのような何か(データB)を必要とする:

binary_stream

2 )誰もdataA(画像上)をdataB(画像下)に変換する方法を知っていますか?

+1

canvas.toBlobを使用してみてください_ "私は」新しいFileReadeを試しましたr()とその* readAsBinaryString()*メソッドは動作しません! "_"バイナリストリーム "とはどういう意味ですか? – guest271314

+0

「うまくいきません」と言ったとき - たとえばコンソールにエラーが表示されますか? –

+0

apiがバイナリストリームを必要としていると言ったとき、apiが16進表示( 'data B ')を必要としていると信じられません。 – Endless

答えて

0

これは、あなたがバイナリストリームに

var base64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" 
 

 
fetch(base64) 
 
.then(res => { 
 
    console.log(res.body instanceof ReadableStream) 
 
})
注意をbase64に変換する方法である:任意のブロブをオンにするScrew-FileReaderとウェブストリーム-ポリフィルを使用することができ、点滅のATMでこれだけ作品を バイトストリームもしあなたが好きなら、

私は本当にあなたがしたいと思うものは、blob(bina RYコンテナ)、その後、バイナリとして(ないBASE64としてAPIにアップロードして)それが本当であるならば、これはCreating a Blob from a base64 string in JavaScriptの単なる複製であると、それがサーバーにAJAXで

var base64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" 
 

 
fetch(base64) 
 
.then(res => res.blob()) 
 
.then(blob => { 
 
    console.log("here is your binary: ", blob) 
 

 
    // now upload it 
 
    fetch(api, {method: 'POST', body: blob}) 
 
})
それを送信するだけでメイザーです最初の場所でのbase64を取得

が本当に非現実的であるとキャンバスからそれを取得するたとえば、あなたならばarrayBuffer、またはブロブ
を使用する前に対処しなければならない - 代わりにtoDataUrl

関連する問題