循环上传图片

 利用的是递归的方法 : 

我用的开源上传图片,然后 在回调的方法中, 把图片的本地路径保存在了一个集合中,然后拿到集合里的第一个元素,进行网络请求 ; 在网络请求的成功回调中,我继续递归调用,网络请求的自定义方法,然后把count++,上传 第二个图片的路径;这样直到count==集合最大值,那么图片就上传完毕了;

 private GalleryFinal.OnHanlderResultCallback mOnHanlderResultCallback = new GalleryFinal.OnHanlderResultCallback() {
			@Override
			public void onHanlderSuccess(int reqeustCode, List<PhotoInfo> resultList) {
				  if (resultList != null) {
					  
					  //如果有从新选择了,我们把当前界面的显示图片,都清空了,要他选择的
						  disposeData();
					  	
					  	mPhotoList.clear();
					  	select_pic.clear();//不能清空了,保留
		                mPhotoList.addAll(resultList);
		                /** 由于,返回显示勾选状态 ,他带回来的比如 3个图片,有可能都是已经选择过的了,也许会比现在少,也会比现在集合里的多 */
		                img_take_pic.setImageResource(R.drawable.camera_press);
						for (PhotoInfo photoInfo : resultList) {
							// 算出,那些事新添加了,显示出来
							select_pic.add(photoInfo.getPhotoPath());
						}
						
						if (null !=select_pic && select_pic.size()>0) {
							tempCount=mPhotoList.size();
							BitmapUtils.compressBitmapNotSaveAlbum(select_pic.get(0), activity);
							downloadPath(select_pic.get(0),Constants.ContentType.image, null,0);
						}
		                
		            }			
			}


网络请求


private void downloadPath(final String filePath, final String type,String videoImagePath, final int cont) {
		RequestParams params=new RequestParams();
		try {
			params.put("enclosure", new File(filePath)); //都是 用这一个key
			if(videoImagePath!=null){
				params.put("enclosureImage", new File(videoImagePath));
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		HttpClient.postUpload(URL.CreateShiShi.enclosure, params, activity, new HttpListener<ResponseResult>() {
			@Override
			public void handMessage(ResponseResult obj) {
				if(obj!=null){
					if(Constants.HttpResponseStatus.success.equals(obj.getCode())){
						try {	
							ToastHelper.showToast(activity, "已上传完附件 "+(cont+1)+" 个");		
							
							count=cont+1;
							/** 只有图片会一下选择 多个 */
							if (tempCount > count) {//如果小于总数就继续下载
								BitmapUtils.compressBitmapNotSaveAlbum(select_pic.get(count), activity);
								downloadPath(select_pic.get(count),type, null,count);
							}else{
								//如果附件上传完, 那么 变量归0
								count=0;
								tempCount=0;
							}
						} catch (Exception e) {
							e.printStackTrace();
						}
					}else{
						ToastHelper.shortShow(activity, obj.getMsg());
					}
				}
			}
		});
	}
  

暂时没有考虑如果没有网络,会怎么办!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值