上传图片实现
来源:互联网 发布:2016网络彩票重启时间 编辑:程序博客网 时间:2024/05/29 15:27
我们往后台传递数据时往往少不了图片,那么就要解决这个问题,我先给一个工具类
package com.example.heatworld.maintian_merchantedition.utils;import android.content.Context;import android.util.Log;import android.widget.Toast;import com.example.heatworld.maintian_merchantedition.bean.UpLoadImageBean;import com.google.gson.Gson;import org.xutils.common.Callback;import org.xutils.http.RequestParams;import org.xutils.x;import java.io.File;import static com.example.heatworld.maintian_merchantedition.application.MyApplication.key;public class UpLoadFileTool { public static void uploadImage(String url, String filePath, final Context context,final InterfaceCallBack interfaceCallBack){ RequestParams params = new RequestParams(url); params.setMultipart(true); params.addBodyParameter("key", key,"multipart/form-data"); params.addBodyParameter("file",new File(filePath),"multipart/form-data"); x.http().post(params, new Callback.CacheCallback<String>() { @Override public void onSuccess(String result) { Log.i("TAG", "上传图片onSuccess: "+result); Gson gson=new Gson(); UpLoadImageBean upLoadImageBean= gson.fromJson(result, UpLoadImageBean.class); if(upLoadImageBean.getCode().equals("1")) { interfaceCallBack.callBack(upLoadImageBean.getSave_path()); Toast.makeText(context, "上传成功", Toast.LENGTH_SHORT).show(); }else { Toast.makeText(context, upLoadImageBean.getMsg()+"", Toast.LENGTH_SHORT).show(); } } @Override public void onError(Throwable ex, boolean isOnCallback) { Log.i("TAG", "上传图片onError: "+ex); Toast.makeText(context, "上传失败,请检查网络", Toast.LENGTH_SHORT).show(); } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } @Override public boolean onCache(String result) { return false; } }); }}
然后我们调用的时候这么写:
UpLoadFileTool.uploadImage(ip, cutFile.getPath(), context, new CallBack()...)
三个参数,第一个是地址,第二个是图片路径,第三个是对象,第四个是一个回调,用来返回图片的,我们看见了一个图片路径,所以下面来解决图片的获取问题,图片可以通过照相和相册获取,那么我们需要在当前的Activity里面配置两个方法。
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case PHOTO_REQUEST_GALLERY://获取相册传来的图片 if (data != null) { Uri uri = data.getData();//裁剪 CutPhotoTool.cutPhoto(uri, VenueAuditActivity.this); } break; case PHOTO_REQUEST_CAREMA://获取相机传来的东西 final Uri uri = Uri.fromFile(output); CutPhotoTool.cutPhoto(uri, VenueAuditActivity.this); break; case PHOTO_REQUEST_CUT://获取裁剪之后的图片 if (data != null) { Bitmap bitmap = data.getParcelableExtra("data"); case 0://法人身份证照片 getPhotosIdCard.setImageBitmap(bitmap); break; } File cutFile = CutPhotoTool.getCutFile(bitmap); UpLoadFileTool.uploadImage(ip + Post_Photo, cutFile.getPath(), VenueAuditActivity.this, new InterfaceCallBack() { @Override public void callBack(String... i) { idCardUri = i[0];//身份证照 break; } });//上传图片 } break; } super.onActivityResult(requestCode, resultCode, data); } //动态权限获取返回 @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { switch (requestCode) { case REQUEST_CODE_ASK_PHOTOS://相册权限以获取 CallPhotoOrCameraTool.callPhoto(this); break; case REQUEST_CODE_ASK_CAMERA://相机权限以获取 output = CutPhotoTool.getOutFile(); CallPhotoOrCameraTool.callCamera(this, output); break; default: super.onRequestPermissionsResult(requestCode, permissions, grantResults); } }
这里我们看见了当我们获取到了图片后我们就会马上上传。然后还有一个idCardUri 参数,是ImageView,返回给这个类,以便做其他的处理。
这样的其实我们就已经完成图片的上传了,下面给出demo,哈哈,其实我也没讲好,只能给例子了。
别点我,我怕疼!
阅读全文
1 0
- 上传图片,实现图片预览
- 上传图片实现图片预览
- 图片上传的实现
- ASP实现图片上传
- ASP实现图片上传
- 实现图片上传预览
- JSP实现图片上传
- Struts实现图片上传
- JSP实现图片上传
- Struts:实现图片上传
- 多图片上传实现
- PHP实现图片上传
- php 实现图片上传
- socket实现图片上传
- socket实现图片上传
- socket实现图片上传
- 实现图片的上传
- 实现图片的上传
- HTML textarea输入框提示文字,添加默认内容
- HDU 3695 浅谈AC自动机模式串匹配算法+严格空间控制
- (剑指offer)数组中任意一个重复的数字
- TYVJ 4868 天天和不可描述 || 清北学堂金秋杯大奖赛
- scala for循环
- 上传图片实现
- 《项目经验》——各类 HTTP 返回状态码原因以及解决办法
- Jquery中each的三种遍历方法
- HDU3338 Kakuro Extension【网络流】
- PullToRefreshListView今日头条初始页面 补充
- NYG的背包 (贪心)
- asp.net mvc 之旅—— 第三站 路由模板中强大的自定义IRouteConstraint约束
- 极其强大的一些js插件
- Uri详解之——Uri结构与代码提取