安卓上传图片工具类
来源:互联网 发布:crt软件使用 编辑:程序博客网 时间:2024/04/29 23:49
public class UploadPicture { private static final int TIME_OUT = 10 * 1000; private static final String CHARSET = "utf-8";/*传进的参数分别是:要上传的文件和要上传到服务器的URL*/ public static String uploadFile( File file, String RequestURL) throws IOException { String result = null; String BOUNDARY = UUID.randomUUID().toString(); String PREFIX = "--", LINE_END = "\r\n"; String CONTENT_TYPE = "multipart/form-data"; try { URL url = new URL(RequestURL); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setReadTimeout(TIME_OUT); conn.setConnectTimeout(TIME_OUT); conn.setDoInput(true); conn.setDoOutput(true); conn.setUseCaches(false); conn.setRequestMethod("POST"); conn.setRequestProperty("Charset", CHARSET); conn.setRequestProperty("connection", "keep-alive"); conn.setRequestProperty("Content-Type", CONTENT_TYPE + ";boundary=" + BOUNDARY); if (file != null) { /** * 当文件不为空,把文件包装并且上传 */ DataOutputStream dos = new DataOutputStream(conn.getOutputStream()); StringBuffer sb = new StringBuffer(); sb.append(PREFIX); sb.append(BOUNDARY); sb.append(LINE_END); /** * 这里重点注意: * name里面的值为服务器端需要key 只有这个key 才可以在PHP中得到对应的文件 * filename是文件的名字,包含后缀名的 比如:abc.png * 采取的方式是将文件名前面用下划线和id再一个下划线的方式,命名的 * 在php服务器端,再将其分开,得到id */ sb.append("Content-Disposition: form-data; name=\"file\"; filename=\"" + "_" + file.getName() + "\"" + LINE_END); sb.append("Content-Type: application/octet-stream; charset=" + CHARSET + LINE_END); sb.append(LINE_END); dos.write(sb.toString().getBytes()); InputStream is = new FileInputStream(file); byte[] bytes = new byte[1024]; int len = 0; while ((len = is.read(bytes)) != -1) { dos.write(bytes, 0, len); } is.close(); dos.write(LINE_END.getBytes()); byte[] end_data = (PREFIX + BOUNDARY + PREFIX + LINE_END).getBytes(); dos.write(end_data); dos.flush(); /** * 获取响应码 200=成功 * 当响应成功,获取响应的流 */ int res = conn.getResponseCode(); if (res == 200) { InputStream input = conn.getInputStream(); StringBuffer sb1 = new StringBuffer(); int temp; while ((temp = input.read()) != -1) { sb1.append((char) temp); } result = sb1.toString(); } else { } } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return result; }}
0 0
- 安卓上传图片工具类
- 安卓上传图片
- 安卓文件图片存储工具类
- 图片上传工具类
- 图片上传工具类
- (安卓)图片上传
- 图片文件上传工具类
- Android图片上传工具类
- Android:上传图片工具类
- 备忘一下安卓的图片上传
- 安卓上传本地图片闪退
- 安卓上传图片到阿里云
- 安卓 PC IOS客户端图片上传
- 安卓图片文字上传至服务器
- 上传本地图片兼容苹果安卓
- 安卓客户端上传图片到服务器
- 安卓上传服务器图片处理
- 上传图片兼容ios和安卓
- 在windows平台上部署伪分布式系统开发hadoop程序
- URI的格式
- swift学习笔记(7)-闭包
- AngularJS实际项目应用——Service层介绍
- Apache与Nginx的优缺点比较
- 安卓上传图片工具类
- android启动系统的图片裁剪工具
- Python 格式化输出
- java常见面试题整合
- java之HelloWorld指令
- 不用加减乘除的加法
- 【秘鲁收款】秘鲁最主流的支付Pago Efectivo
- Opencv 机器学习 快速入手小程序
- [学习方法】如何上好中学??中学生学习方法推介