2017-06-29 122 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