按下按钮时,我试图从手机存储中获取文档文件,然后将其上传到服务器。但我不知道要使用哪个库以及如何使用。
问问题
507 次
1 回答
0
如果你愿意使用 React-native-fetch-blob 或 axios 库。
如果 React-native-fetch-blob 你可以这样做:
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 : 'example@example.com',
tel : '12345678'
})},
]).then((resp) => {
// ...
}).catch((err) => {
// ...
})
您将设法从 RNFS 甚至 RNFetch blob 等库中获取文件路径。
https://github.com/wkh237/react-native-fetch-blob
您也可以使用 axios ( https://github.com/mzabriskie/axios ),但我不使用它,因此无法为您提供更多帮助。
两者之间的区别在于它们发送数据的方式。RNFB 使用 fetch api 并下降到 native 以获取 Base64 编码,axios 工作在 XMLHttpRequests 上,这更有可能在互联网浏览器中使用。
希望能帮助到你。
于 2017-07-03T09:12:51.117 回答