环境:android
千牛版本5.8.5 。
操作:用camera跟gallery是一样的上传图片方式。gallery就可以选取图片上传成功。camera会提示Invalid arguments:image
可能是客户端转换的问题
QN.image.get({
query: {
source: source,
limit: 1,
},
success(result) {
let localURL = result.data[0].localURL;
let path = encodeURI(result.data[0].path);
let url_type;
let img_name = path.split('/');
img_name = img_name[img_name.length-1];
if (img_name.indexOf(".jpg") > 0) {
url_type = "jpg";
}else if(img_name.indexOf('.png') > 0){
url_type = "png";
}
let url = '';
url = 'file://localpath='+path+'&mimetype=image%2f'+url_type;
console.log("url",url);
QN.app.invoke({
api: 'getFileData', // 通用协议接口名称
query: { // 请求参数
uris : url,
}
}).then(result => {
console.log("queryData",result);
let default_img_update_query = {
method:"taobao.item.img.upload",
}
let = query = default_img_update_query;
query.image = {
name:img_name,
data:result.data.res[0].data,
};
query.is_major = false;
query.num_iid = num_iid;
QN.top.invoke({
query: query
}).then(result => {
result = result.data;
console.log(result);
}, error => {
console.error(error);
});
}, error => {
console.error("queryData",error);
});
},
error(error) {
console.log(error);
},
})
.then((result) => {
console.log(result);
}, (error) => {
console.log(error);
});
该问题是因为拍照时图片尺寸太大(超过3M),被服务器拒绝的问题,一般使用相机拍摄出来的图片已经超过3M。请尝试替换QN.image.get请求为selectFiles通用协议,并指定一个合理的图片宽高。
http://jdy.tmall.com/doc/detail?spm=0.0.0.0.qifRsf&id=155。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。