2017-06-29 123 views
-1

我試圖從按鍵被按下並且上傳到服務器時從手機存儲獲取文檔文件。但我不知道要使用哪個庫以及如何去做。從手機中選擇文檔文件並上傳到服務器

+0

如果您提出一個具體問題並顯示目前爲止解決問題所做的工作,這將會很有幫助。 –

+0

那麼我只做了設計。我有2個按鈕和一個textview。 第一個按鈕被附加,所以當我按下它時,它會打開手機存儲以拾取pdf文件並在TextView中顯示文檔名稱。第二個按鈕是保存,保存後的api。 – endari

回答

0

如果您願意使用庫,您同時擁有React-native-fetch-blob或axios。

如果REACT原生取二進制大對象,你可以做這樣的:

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 BLOB庫的文件路徑。

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

你可以用愛可信太(https://github.com/mzabriskie/axios),但我不使用它,所以我不能幫你了。

兩者之間的區別在於它們發送數據的方式。 RNFB使用fetch api並下降到本地以獲得Base64編碼,axios通過XMLHttpRequests工作,這更有可能在互聯網瀏覽器中使用。

希望它有幫助。

+0

感謝這有幫助 – endari

+0

記得投票/選擇答案;) – EnriqueDev