Android图片上传和下载,android 上传/下载 图片
public class HttpAssist {
private static final String TAG = "uploadFile";
private static final int TIME_OUT = 10 * 10000000; // 超时时间
private static final String CHARSET = "utf-8"; // 设置编码
public static final String SUCCESS = "1";
public static final String FAILURE = "0";
//上传文件
public static String uploadFile(File file) {
String BOUNDARY = UUID.randomUUID().toString(); // 边界标识 随机生成
String PREFIX = "--", LINE_END = "\r\n";
String CONTENT_TYPE = "multipart/form-data"; // 内容类型
//请求URL
String RequestURL = "http://192.168.0.100:7080/YkyPhoneService/Uploadfile1";
//String RequestURL = "http://www.hong3.com/Fortest/getfiles";
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); // 允许输出流
// Post 请求不能使用缓存
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) {
/**
* 当文件不为空,把文件包装并且上传
*/
OutputStream outputSteam = conn.getOutputStream();
DataOutputStream dos = new DataOutputStream(outputSteam);
StringBuffer sb = new StringBuffer();
sb.append(PREFIX);
sb.append(BOUNDARY);
sb.append(LINE_END);
/**
* 这里重点注意: name里面的值为服务器端需要key 只有这个key 才可以得到对应的文件 ,也就是此处的uploadfile,
* filename是文件的名字,包含后缀名的 比如:abc.png
*/
sb.append("Content-Disposition: form-data; name=\"uploadedfile\"; 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) {
return SUCCESS;
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return FAILURE;
}
/**
* 从服务器取图片
* @param url
* @return
*/
public static Bitmap getHttpBitmap(String url) {
URL myFileUrl = null;
Bitmap bitmap = null;
try {
myFileUrl = new URL(url);
//myFileUrl = new URL(s);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();
conn.setConnectTimeout(0);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.connect();
System.setProperty("http.keepAlive", "false");
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
return bitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
Android图片上传和下载,android 上传/下载 图片相关推荐
- android开发游记:图片的上传下载-使用七牛云存储管理图片
我们一般都是使用第三方云存储服务来管理图片,图片并不保存在本地,这样的结构,为后台的开发人员省去了很多精力.目前的云存储服务对资源的管理也非常便捷技术也相对成熟,这里我就介绍下目前用的比较多的的七牛云 ...
- android 上传头像遇到的问题,Android 7.0 图片剪切问题,选择头像上传
一. 7.0文件地址传输的问题 异常信息:FileUriExposedException: android:name="android.support.v4.content.FileProv ...
- android头像相册/拍照选取,裁剪及上传综合案例
在android项目中,很多情况下上传头像的需求,像qq,新浪微博,微信,飞信等很多应用都有这样的功能. 之前我写过的两篇文章:andorid下从相册选取/拍照选取一张相片并剪切和android下Bi ...
- android使用webview上传文件,Android项目中如何在webview页面中上传文件
Android项目中如何在webview页面中上传文件 发布时间:2020-11-26 15:56:27 来源:亿速云 阅读:68 作者:Leah 本篇文章为大家展示了Android项目中如何在web ...
- android 加载系统私有库,Android 搭建私有maven仓库及上传项目
前言 在日常工作及项目迭代过程中,一定有不少同学自己写了一些框架性的东西,或者一些好用的工具,总之就是能复用的代码.然而也有不少同学为了复用这些代码不得不复制粘贴到不同项目中,这样相同的功能出现了多份 ...
- android com.mylhyl,Android 高仿微信朋友圈拍照上传功能
模仿微信朋友圈发布动态,输入文字支持文字多少高度自增,有一个最小输入框高度,输入文字有限制,不过这些都很easy! 1. photopicker的使用 这是一个支持选择多张图片,点击图片放大,图片之间 ...
- 微信多图上传,解决android多图上传失败问题
微信提供了文件上传的方法wx.uploadFile来上传我们的图片 wx.chooseImage({success: function(res) {var tempFilePaths = res.te ...
- android 微信高仿,Android 高仿微信朋友圈拍照上传功能
模仿微信朋友圈发布动态,输入文字支持文字多少高度自增,有一个最小输入框高度,输入文字有限制,不过这些都很easy! 1. PhotoPicker的使用 这是一个支持选择多张图片,点击图片放大,图片之间 ...
- shell 截屏 android,Android 使用Shell脚本截屏并自动传到电脑上
Android 使用Shell脚本截屏并自动传到电脑上 Android设备用久了,截屏是个麻烦事.更麻烦的是通过qq传到电脑上,倒腾半天.其实用adb命令就可以截屏,然后写个pull的语句就可以拉到电 ...
- Android 通过python实现自动化构建打包上传加固
Android 通过python实现自动化构建打包上传加固 实现需求: 基于gradle命令,通过python实现多渠道,多环境打包,上传蒲公英,360加固等 经过学习调研完成步骤如下: 一,通过gr ...
最新文章
- java 静态块的作用域_java 学习笔记(一)
- 注册窗口类 registerclass
- Keras中LSTM的return_sequences和return_state
- 基于html5背景图片自适应代码
- 好的领导应该是什么脾气
- 使用VS2015的Visual Studio Installer打包
- nginx 完全关闭 access_log
- 想法独特 上半年最具特色摄像头集锦
- wer 流程图编程_WER机器人搭建学习实操练习
- 58节沈大海H5edu.cn2016javaScript视频教程打包下载
- 【脱壳-寻找OEP】通过堆栈平衡法找到OEP(ESP定律)
- OpenCV在图片和视频中的人脸检测
- 一篇文章带你了解国企程序员(超详细)
- 用k-mer分析进行基因组调查:(六)用KmerGenie一步实现
- 计算机无法连接路由器上网,为什么路由器无法连接到网络,但是路由器无法连接到互联网!...
- Java递归解压zip压缩包
- 点云txt文件—pcd文件
- 软件工程概论期末复习笔记
- 六、字体样式和文本样式
- 通过id查用户名php,通过用户名称获取微博id
热门文章
- Tomcat BIO . NIO . ARP 配置
- oppo5.0以上系统怎么样不Root激活Xposed框架的经验
- 【Fiddler 实战操作】如何使用 Fiddler 对苹果手机进行抓包
- 【Python】文本进度条
- 字符串第一个出现的单个字符_如何在不编写单个应用程序的情况下找到我的第一个开发人员工作
- houdini_通过卡通了解CSS Houdini的指南
- maven summer_我在Google Summer of Code的经历
- 113_Power Pivot 销售订单之重复购买率及购买间隔天数相关
- mac安装和使用boost库
- centos mysql安装