2017-06-29 2 views
-1

J'essaie d'obtenir un fichier de document à partir du stockage du téléphone lorsque vous appuyez sur le bouton et que vous téléchargez le serveur. Mais je ne sais pas quelle bibliothèque utiliser et comment le faire.Sélectionnez un fichier de document à partir du téléphone et téléchargez-le sur le serveur

+0

Il serait utile si vous posez une question spécifique et montrez ce que vous avez fait pour le résoudre jusqu'à présent. –

+0

Eh bien, je n'ai fait que la designe. J'ai 2 boutons et un textview. Le premier bouton est attaché de sorte que lorsque j'appuie dessus, il ouvre la mémoire du téléphone pour prendre un fichier pdf et affiche le nom du document dans TextView. Le deuxième bouton est Enregistrer qui enregistre ce post-api fthrought. – endari

Répondre

0

Si vous souhaitez utiliser une bibliothèque, vous avez à la fois React-native-fetch-blob ou axios.

Si réagissez-natif fetch-blob vous pouvez le faire comme ceci:

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) => { 
    // ... 
    }) 

Vous hae à gérer pour obtenir le chemin du fichier de bibliothèques comme RNFS ou même blob RNFetch.

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

Vous pouvez utiliser aussi Axios (https://github.com/mzabriskie/axios), mais je ne l'utilise pas donc je ne peux pas vous aider davantage.

La différence entre les deux est la façon dont ils envoient les données. RNFB utilise l'API de récupération et descend en natif pour obtenir l'encodage Base64, axios fonctionne sur XMLHttpRequests, qui est plus susceptible d'être utilisé dans les navigateurs Internet.

Espérons que ça aide.

+0

Merci, cela a été utile – endari

+0

Rappelez-vous de voter en haut/sélectionner comme réponse;) – EnriqueDev