2017-06-29 1 views
-1

Ich versuche, eine Dokumentdatei vom Telefonspeicher zu erhalten, wenn die Taste gedrückt wird, und dann den Server hochzuladen. Aber ich weiß nicht, welche Bibliothek zu verwenden und wie es geht.Dokumentdatei vom Telefon auswählen und zum Server hochladen

+0

Es wäre hilfreich, wenn Sie eine bestimmte Frage stellen und zeigen, was Sie bisher getan haben, um es zu lösen. –

+0

Nun, ich habe nur das Design gemacht. Ich habe 2 Knöpfe und eine Textansicht. Erste Taste ist anhängen, wenn ich es drücke, öffnet es Telefonspeicher, um eine PDF-Datei aufzuheben und zeigt den Dokumentnamen in TextView. Die zweite Schaltfläche ist Speichern, die diese Art von Post-API speichert. – endari

Antwort

0

Wenn Sie bereit sind, eine Bibliothek zu verwenden, haben Sie sowohl React-Native-Fetch-Blob oder Axios.

Wenn React-native-Fetch-Blob Sie es wie folgt tun:

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

Sie den Dateipfad von Bibliotheken wie RNFS oder sogar RNFetch Blob verwalten hae zu bekommen.

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

Sie axios verwenden (https://github.com/mzabriskie/axios), aber ich verwende es nicht, so kann ich Ihnen nicht weiter helfen.

Der Unterschied zwischen beiden ist die Art, wie sie die Daten senden. RNFB verwendet die fetch-API und geht auf native um die Base64-Kodierung zu erhalten. Axios funktioniert über XMLHttpRequests, die eher in Internet-Browsern verwendet werden.

Ich hoffe, es hilft.

+0

Vielen Dank, das war hilfreich – endari

+0

Denken Sie daran, bis zur Abstimmung/wählen Sie als Antwort;) – EnriqueDev

Verwandte Themen