用户头像上传到服务器
每个应用都有这样的功能,在我的界面,需要修改用户头像(拍照,选择本地),将图片上传到服务器.
- 这就涉及到了好几个问题:
- 1.现在市面上好多手机已经是7.0系统,这里我们就要注意一些兼容处理,6.0动态权限,7.0文件安全
- 2.图片的上传,这里我使用okhttp
1.最好用的拍照Utils
- 这里我只粘贴操作的代码,具体的utils类大家可以去copy,后面我会说到
- 这里我还用到了ios风格的底部选择框
CropImageUtils.getInstance().openAlbum(this); //打开相册CropImageUtils.getInstance().takePhoto(this); //拍照
@RequiresApi(api = Build.VERSION_CODES.KITKAT)@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);CropImageUtils.getInstance().onActivityResult(mContext, requestCode, resultCode, data, new CropImageUtils.OnResultListener() {@Overridepublic void takePhotoFinish(String path) {//拍照回调,去裁剪CropImageUtils.getInstance().cropPicture(mContext, path);}@Overridepublic void selectPictureFinish(String path) {//相册回调,去裁剪CropImageUtils.getInstance().cropPicture(mContext, path);}@Overridepublic void cropPictureFinish(String path) {LogUtils.d("path", path + " .....");//TODO 上传图片SpUtil.putString(mContext, GlobalVariables.USER_ICON_FILE_PATH, path);// upload(path);}});}
/*** 上传图片到服务器** @param path*/private void upload(String path) {HashMap<String, Object> paramsMap = getMapParams(path);//TODO 1. 请求路径urlString request_url = "";MultipartBody.Builder builder = new MultipartBody.Builder();//设置类型(表单上传)builder.setType(MultipartBody.FORM);//追加参数for (String key : paramsMap.keySet()) {Object object = paramsMap.get(key);if (!(object instanceof File)) {builder.addFormDataPart(key, object.toString());} else {File file = (File) object;builder.addFormDataPart(key, file.getName(), RequestBody.create(null, file));}}//创建RequestBodyRequestBody body = builder.build();//创建Requestfinal Request request = new Request.Builder().url(request_url).post(body).build();//单独设置参数 比如读取超时时间Call call = new OkHttpClient().newBuilder().writeTimeout(50, TimeUnit.SECONDS).build().newCall(request);call.enqueue(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {LogUtils.d("json", "上传失败");}@Overridepublic void onResponse(Call call, Response response) throws IOException {if (response.isSuccessful()) {String string = response.body().string();LogUtils.d("json", "上传图片成功: " + string);} else {LogUtils.d("json", "上传失败");}}});}
//TODO 2. 添加参数private HashMap<String, Object> getMapParams(String path) {HashMap<String, Object> params = new HashMap<>();//todo 这里根据接口自己改变参数// params.put("uid", uid);// params.put("pwd", Encrypt.getMD5Str(pwd));// params.put("bid", Constant.PRODUCT);// params.put("cp", Constant.OS);// params.put("cv", AndroidUtil.getVersionName(this));// params.put("pkgname", this.getPackageName());// params.put("imei", SystemUtil.getImei(this));// params.put("imsi", SystemUtil.getImsi(this));// params.put("netmode", SystemUtil.getNetworkName(this));// params.put("ts", String.valueOf(System.currentTimeMillis() / 1000));File file = new File(path);if (file != null) {params.put("pic", file);}return params;}
2.结束
- 上面只是粘贴了使用的部分代码,具体实现可以去看我上次的demo,可以完全用到你到项目中.
- 地址: https://github.com/hh-pan/UserInfoSetting
用户头像上传到服务器相关推荐
- PHP+ajaxfileupload 实现用户头像上传
今天写项目的时候需要一个让登录的用户上传头像的功能,然后上网搜了一下,发现有一个不错的Ajax插件ajaxfileupload,所以就拿来用,感觉效果不错,在这里和大家分享一下.下面将用PHP+aja ...
- php文件 用户头像上传代码,网页web上传用户头像代码实现(美图秀秀开放)
网页web上传用户头像代码实现(美图秀秀开放) 在制作论坛或者一些门户社交网站的时候,经常要获取用户的头像.之前我们一般都是自己制作flash插件头像上传.或者用js来自己开发一个头像上传功能.比如有 ...
- Day88.七牛云: 房源图片、用户头像上传 Common-upload、Webuploader
目录 一.七牛云存储 4.鉴权 二.开发者中心,上传.删除测试 1.添加依赖 2.代码测试 3. 封装工具类 三.房源图片上传 1. spring mvc 配置上传支持 2. house/show.h ...
- Java实现用户头像上传(修改默认文件大小限制)
概述 每次说起文件上传,就不得不提一下前端的实现方式,说来也奇怪,本博主最热门的博客居然也是文件上传,3万多的访问量占了总访问量的一多半:<传统form表单提交方式的文件上传与文件存储>, ...
- Android开发之用户头像上传
一,概述 本篇博客总结一下自己在开发过程中应用到的一些知识,在本篇博客中带领大家完成用户头像选择或者拍照上传,并对图片进行大小的压缩,和形状的控制,可以将用户选择到的图片裁剪成圆形上传. ok,我们开 ...
- SpringBoot OSS实战之用户头像上传
文章目录 前言 OSS整合 前端 获取授权 上传图片 上传URL到服务端 完整代码 后端 图片URL接收 补充 效果演示 前言 已经开始对写接口产生厌烦了,毫无技术含量,不过也是最近把用户的比较核心的 ...
- Android用户头像上传
开始写一个小的demo,完成用户圆形头像的选取,在写即将实现的效果之前我们看一下即将要实现的效果图 二,实现代码 activity_main.xml <LinearLayout xmlns:an ...
- 用户头像上传之 jQuery+ajax+php+预处理
小知识: dataType:预期的服务器返回的数据类型 当设置了dataType:"json"时,后端返回了json,就自动将JSON格式字符串转换为js对象,如果后端返回了Str ...
- 关于用户头像上传的配置
基于SpringMVC的文件上传 1 MultipartFile接口 MultipartFile接口常用的的API见下表: 方法 功能描述 String getOriginalFilename() 获 ...
最新文章
- 《Java程序员,上班那点事儿》书名的由来
- 201711月04日普及组 Array
- canal介绍和使用docker安装canal
- FLEXAIR 界面展示。
- 404、500、502等HTTP状态码介绍
- 信息学奥赛一本通(1126:矩阵转置)
- idea+selenium代码_你试过使用selenium爬虫抓取数据吗
- 索引栏_网站导航栏如何设置才能促使网站SEO优化更好?
- 一款短小精悍的日志分析工具web_log_analyse
- java sync 实现原理_JAVA 同步实现原理
- python mql4跟单_MT4本地跟单EA设置教程 -
- 两年数据对比柱形图_视频教程:堆积柱形图的几种变化形式
- 练习题︱豆瓣图书的推荐与搜索、简易版知识引擎构建(neo4j)
- 如何用木板做桥_木头做桥基,300年不倒(组图)
- 论文阅读:Reasoning about Object Affordances in a Knowledge Base Representation
- vivado2020报错:error when launching …vivao.bat…launcher time out“
- 什么是一体化管理体系
- 今天两位80后程序员身价超千亿 一大波快手员工财富自由
- 关于感染型病毒的那些事(一)
- 区块链测试网服务发布