2017-06-29 3 views
-1

ボタンを押してサーバにアップロードするよりも、電話機のストレージから文書ファイルを取得しようとしています。しかし、どのライブラリを使用するのか、それをどうするのか分かりません。電話から文書ファイルを選択してサーバにアップロード

+0

特定の質問をして、それまでに解決したことを示していると役立ちます。 –

+0

さて、私はdesigneだけを行った。私は2つのボタンとテキストビューを持っています。 最初のボタンが付いているので、それを押すと電話機のストレージが開き、pdfファイルが取り込まれ、TextViewにドキュメント名が表示されます。 2番目のボタンは、保存されたポストapiを保存する保存です。 – endari

答えて

0

ライブラリを使用する場合は、React-native-fetch-blobまたはaxiosの両方があります。

もしリアクト - ネイティブ・フェッチ・ブロブをあなたはこのようにそれを行うことができます。

RNFetchBlob.fetch('POST', 'http://www.example.com/upload-form', { 
    Authorization : "Bearer access-token", 
    otherHeader : "foo", 
    'Content-Type' : 'multipart/form-data', 
    }, [ 
    // element with property `filename` will be transformed into `file` in form data 
    { name : 'avatar', filename : 'avatar.png', data: binaryDataInBase64}, 
    // custom content type 
    { name : 'avatar-png', filename : 'avatar-png.png', type:'image/png', data: binaryDataInBase64}, 
    // part file from storage 
    { name : 'avatar-foo', filename : 'avatar-foo.png', type:'image/foo', data: RNFetchBlob.wrap(path_to_a_file)}, 
    // elements without property `filename` will be sent as plain text 
    { name : 'name', data : 'user'}, 
    { name : 'info', data : JSON.stringify({ 
     mail : '[email protected]', 
     tel : '12345678' 
    })}, 
    ]).then((resp) => { 
    // ... 
    }).catch((err) => { 
    // ... 
    }) 

あなたはRNFSあるいはRNFetchブロブなどのライブラリからファイルパスを取得するために管理することがHAEます。

https://github.com/wkh237/react-native-fetch-blob

あなたはあまりにも(https://github.com/mzabriskie/axios)axios使用することができますが、私はそれ以上のあなたを助けることができないので、それを使用しないでください。

両方の違いは、データの送信方法です。 RNFBはfetch apiを使用して、Base64エンコーディングを取得するためにネイティブになりますが、AxiosはXMLHttpRequestsで動作します。これはインターネットブラウザで使用される可能性が高くなります。

希望します。

+0

ありがとうございました – endari

+0

票を覚えておいて/答えとして選択;) – EnriqueDev

関連する問題