2016-12-13 18 views
4

Fetch APIを使用してバイナリファイルをアップロードする方法はありますか?React-Native Fetch APIを使用してHTTP経由でバイナリを送信する

これは、いくつかの 'アプリケーション/オクテットストリーム'の単純なPUTになります。

XHRライブラリが動作していますが、フェッチは特にリアクションネイティブ環境で優れていると思います。 React-Native Fetchは現在Blobをサポートしていますか?

理想的には私はこのような何かをしたいのですが、Blobが定義されていない:

fetch('https://s3.amazonaws.com/signedUrl/', { method: 'PUT', headers: { 'Content-Type': 'application/octet-stream', }, body: Blob(filePath) })

答えて

-1

私が使用することをお勧めします:https://github.com/github/fetchを取得するためのポリフィルとして広くサポートされていないため。

は、ドキュメントのサンプルを取得:

var input = document.querySelector('input[type="file"]') 

var data = new FormData() 
data.append('file', input.files[0]) 
data.append('user', 'hubot') 

fetch('/avatars', { 
    method: 'POST', 
    body: data 
}) 

次のように私はそれを使用しています:

var input = document.querySelector('input[type="file"]') 

function upload(e) { 
    const file = input.files[0]; 
    const reader = new FileReader(); 

    reader.onload = (e) => { 
    fetch('/avatars', { 
     method: 'POST', 
     body: e.currentTarget.result 
    }) 
    }; 

    reader.readAsArrayBuffer(file); 
} 

input.addEventListener('change', upload, false) 
+1

は、ネイティブモバイル開発ではなく、ウェブに関連して反応します。 'input [type =" file "]'はモバイルデバイス上にありません。リクエストを送信するために単純な 'XMLHttpRequest'オブジェクトが使われます。 – rudyryk

関連する問題