时间:2021-05-20
之前做这个头像上传功能还是花了好多时间的,今天我将我的代码分享给大家先看效果图
首先看上传图片的工具类,一点都没有少复制就可以用
** * Created by Administrator on 2016/7/28. * 上传图片工具类 */public class UploadUtil { private static UploadUtil uploadUtil; private static final String BOUNDARY = UUID.randomUUID().toString(); // 边界标识 随机生成 private static final String PREFIX = "--"; private static final String LINE_END = "\r\n"; private static final String CONTENT_TYPE = "multipart/form-data"; // 内容类型 private UploadUtil() { } /** * 单例模式获取上传工具类 * * @return */ public static UploadUtil getInstance() { if (null == uploadUtil) { uploadUtil = new UploadUtil(); } return uploadUtil; } private static final String TAG = "UploadUtil"; private int readTimeOut = 10 * 1000; // 读取超时 private int connectTimeout = 10 * 1000; // 超时时间 /*** * 请求使用多长时间 */ private static int requestTime = 0; private static final String CHARSET = "utf-8"; // 设置编码 /*** * 上传成功 */ public static final int UPLOAD_SUCCESS_CODE = 1; /** * 文件不存在 */ public static final int UPLOAD_FILE_NOT_EXISTS_CODE = 2; /** * 服务器出错 */ public static final int UPLOAD_SERVER_ERROR_CODE = 3; protected static final int WHAT_TO_UPLOAD = 1; protected static final int WHAT_UPLOAD_DONE = 2; /** * android上传文件到服务器 * * @param filePath 需要上传的文件的路径 * @param fileKey 在网页上<input type=file name=xxx/> xxx就是这里的fileKey * @param RequestURL 请求的URL */ public void uploadFile(String filePath, String fileKey, String RequestURL, Map<String, String> param) { if (filePath == null) { sendMessage(UPLOAD_FILE_NOT_EXISTS_CODE, "文件不存在"); return; } try { File file = new File(filePath); uploadFile(file, fileKey, RequestURL, param); } catch (Exception e) { sendMessage(UPLOAD_FILE_NOT_EXISTS_CODE, "文件不存在"); e.printStackTrace(); return; } } /** * android上传文件到服务器 * * @param file 需要上传的文件 * @param fileKey 在网页上<input type=file name=xxx/> xxx就是这里的fileKey * @param RequestURL 请求的URL */ public void uploadFile(final File file, final String fileKey, final String RequestURL, final Map<String, String> param) { if (file == null || (!file.exists())) { sendMessage(UPLOAD_FILE_NOT_EXISTS_CODE, "文件不存在"); return; } Log.i(TAG, "请求的URL=" + RequestURL); Log.i(TAG, "请求的fileName=" + file.getName()); Log.i(TAG, "请求的fileKey=" + fileKey); new Thread(new Runnable() { //开启线程上传文件 @Override public void run() { toUploadFile(file, fileKey, RequestURL, param); } }).start(); } private void toUploadFile(File file, String fileKey, String RequestURL, Map<String, String> param) { String result = null; requestTime = 0; long requestTime = System.currentTimeMillis(); long responseTime = 0; try { URL url = new URL(RequestURL); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setReadTimeout(readTimeOut); conn.setConnectTimeout(connectTimeout); conn.setDoInput(true); // 允许输入流 conn.setDoOutput(true); // 允许输出流 conn.setUseCaches(false); // 不允许使用缓存 conn.setRequestMethod("POST"); // 请求方式 conn.setRequestProperty("Charset", CHARSET); // 设置编码 conn.setRequestProperty("connection", "keep-alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); conn.setRequestProperty("Content-Type", CONTENT_TYPE + ";boundary=" + BOUNDARY);// conn.setRequestProperty("Content-Type", "application/x-patActivity implements View.OnClickListener, UploadUtil.OnUploadProcessListener {重写onActivityResult获取数据
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case CAMERA_REQUEST: switch (resultCode) { case -1://-1表示拍照成功 File file = new File(Environment.getExternalStorageDirectory() + "/hand.jpg");//保存图片 if (file.exists()) { //对相机拍照照片进行裁剪 photoClip(Uri.fromFile(file)); } } break; case PHOTO_REQUEST://从相册取 if (data != null) { Uri uri = data.getData(); //对相册取出照片进行裁剪 photoClip(uri); } break; case PHOTO_CLIP: //完成 if (data != null) { Bundle extras = data.getExtras(); if (extras != null) { Bitmap photo = extras.getParcelable("data"); try { //获得图片路径 filepath = UploadUtil.saveFile(photo, Environment.getExternalStorageDirectory().toString(), "hand.jpg"); //上传照片 toUploadFile(); } catch (IOException e) { e.printStackTrace(); } //上传完成将照片写入imageview与用户进行交互 mImageView.setImageBitmap(photo); } } break; }}源码下载:Android实现头像上传功能
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一个网站,其实说白了就是某几个特定功能的组合,而更换用户头像就在这些功能之中。今天就来做个测试,针对不同的用户,实现头像上传功能。---------------
考虑一个常见的用户上传头像的场景:点击按钮,弹出文件选择框选中图片并确认后直接上传图片实现这个功能,需要使用来添加文件,并实现上传功能。传统的上传文件是将放到中
本文实例讲述了JavaWebservlet实现下载与上传功能的方法。分享给大家供大家参考,具体如下:本文内容:servlet实现下载功能servlet实现上传功
一个网站,其实说白了就是某几个特定功能的组合,而更换用户头像就在这些功能之中。今天就来做个测试,针对不同的用户,实现头像上传功能。先给大家展示下成品效果图:思路
本文实例讲述了Android实现拍照上传功能的方法。分享给大家供大家参考,具体如下:1、LoginWindow.java--登录窗口packagecom.hem