我刚开始准备使用react-native-qiniu,发现文档不太看得懂,然后自己手写。
//图片key
let randomName= type+Date.now()+'.jpeg';
//生成token
let putPolicy = new Auth.PutPolicy2(
{scope: "kaili:"+randomName}
);
let uptoken = putPolicy.token();
//数据对象
let formData = new FormData();
formData.append("token", uptoken);
formData.append("key", randomName);
formData.append("file", source);
//上传数据
fetch('http://up-z2.qiniu.com/',{
method:'POST',
headers:{
'Content-Type':'multipart/form-data',
},
body:formData,
})
.then((response) => response.json())
.then((responseData)=>{
console.log('responseData=',responseData);
})
.catch((error)=>{console.error('error=',error)});
其中type为我自己定义名字的前缀(仅仅名字)source为图片资源的本地地址
说到本地地址》我尝试用:
file:///storage/emulated/0/DCIM/IMG_20170930_115646.jpg
content://media/external/images/media/25183
这两种格式,服务器返回都为200,说明上传成功,连接没有问题。但是,问题上是:
服务器只有:
图片就是:55b,显示如下:
应该是我有没有把图片资源给上传过来,请问我如何解决怎么样的问题。
还有想了解file://开头和content://的区别,怎么上传。谢谢!!
file:// 和content://都是可以的
原因是配置formData对象配置正确。具体参考七牛直传,或者直接查看react-native-qiniu里面uploadFile方法(上传方法函数,具体忘记)查看源码。
key为file的改为下面即可
formData.append('file',{source:url,key:key,name:name})