因为用的antd和七牛,在上传之前需要生成一个token,根据antd的upload的文档可以设置data为一个返回对象的函数,这个对象就会被设置在上传的body里面,我在data函数里面通过和服务端交互生成token, 拿到token之后,请问如何返回呢?
data(file){
Http.generate().then(token) //请问这里如何返回?
}
因为用的antd和七牛,在上传之前需要生成一个token,根据antd的upload的文档可以设置data为一个返回对象的函数,这个对象就会被设置在上传的body里面,我在data函数里面通过和服务端交互生成token, 拿到token之后,请问如何返回呢?
data(file){
Http.generate().then(token) //请问这里如何返回?
}
onImageUpload(files){
var values = {"bucket":"article"}
$.ajax({
url:'https://apisssssss。。。。',
type: 'GET',
dataType: 'json',
data: values,
success: function(map){
var uptoken = map.data.token;
var name = map.data.filename;
var qiniuDomain = "http://xxxxxxxdn.com/";
QiniuUploadUtil.uploadFile(files[0], uptoken, name, function(data){
// 插入到summernote
ReactSummernote.insertImage( qiniuDomain + data['key'] , $image => {
$image.css({
display: '',
width: '25%'
});
});
}, function(){
alert("上传失败");
});
}
});
var QiniuUploadUtil = function(){
var util = {};
util.uploadFile = function(file, uptoken,name, success, error) {
//name是文件名,自己随意定义,aid是我自己增加的属性用于区分文件用户
var data = new FormData();
data.append("file", file);
data.append("key", name);
data.append("token", uptoken);
$.ajax({
data: data,
type: "POST",
url: "http://upload.qiniu.com",
cache: false,
contentType: false,
processData: false,
success: success,
error: error
});
}
return util;
}();
}
2 回答1.3k 阅读✓ 已解决
2 回答1.7k 阅读
1 回答878 阅读
1 回答866 阅读
1 回答676 阅读
796 阅读
把这个data中的数据设置为一个state,请求拿到token后,改变state就可以了