搞了2天,上传回调自定义变量一直无法获取到相应的值,昨天查了好像是没有将值赋值成功替换,导致回调变量的值为空。根据文档,Android端的代码如下 HashMap map = new HashMap<>(); map.put("x:type", "1"); map.put("x:phone", "18659218070"); map.put("x:token", "0bd3cffb5c03d484cd9af76b51c5ab5a"); uploadManager.put(photoPath, fileName, mUploadToken, mUpCompletionHandler, mOptions); UpCompletionHandler mUpCompletionHandler = new UpCompletionHandler() { @Overridepublic void complete(String key, ResponseInfo info, JSONObject response) {
DebugKit.e(TAG, "key:" + key);
DebugKit.e(TAG, "statusCode:" + info.statusCode);
DebugKit.e(TAG, "path:" + info.path);
DebugKit.e(TAG, "头像上传错误信息:" + info.error);
DebugKit.e(TAG, "reqId:" + info.reqId);
DebugKit.e(TAG, createQiNiuNormalPicUrl(key));
if (info.isOK() == true) {
ToastKit.show(UserActivity.this, "头像上传成功");
ImageLoader.getInstance().displayImage(createQiNiuNormalPicUrl(key), mUserPic, UILOptions.create());
}} }; UploadOptions mOptions = new UploadOptions(map, null, false, new UpProgressHandler() { @Overridepublic void progress(String key, double percent) {
String fileName = null;} }, null); 以下是服务端上传 token代码 public HashMap getUploadToken() { Auth auth = Auth.create(QiniuConfig.QINIU_ACCESS_KEY, QiniuConfig.QINIU_SECRET_KEY); String token = auth.uploadToken(QiniuConfig.QINIU_BUCKET,null,2556028799L, new StringMap() .put("callbackUrl","http://121.40.200.31/api/qiniuCallBack")
.put("callbackBody", "fname=$(fname)&type=$(x:type)&phone=$(x:phone)&token=$(x:token)")
.put("fsizeLimit", 5242880)); HashMap map = new HashMap(); map.putAll(JFinalUtil.doResult(true)); map.put("result", token); return map; } 获得回调结果只能获取到fname,也就是魔法变量,自定义变量都取不到 如上图可示,fname可以获取到相应的值,但是自定义变量都没有值,感觉是没有替换成功或者是APP端没有提交相应数据上去。 经过核查,map的是有值,或者能否输出上传的url链接供我们自行调试?, callbackBody 这样设置的: "callbackBody", "fname=$(fname)&type=$(x:type)&phone=$(x:phone)" 那么服务端获取的请求的字段是使用 phone 来获取 按照下面的方式再运行下: UploadOptions mOptions = new UploadOptions(new StringMap().put("x:phone", "12345678912"), null, false, new UpProgressHandler(){
public void progress(String key, double percent){
DebugKit.e(TAG,"文件上传进度:"+percent);
}}, null);