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 上传/下载 图片相关推荐

  1. android开发游记:图片的上传下载-使用七牛云存储管理图片

    我们一般都是使用第三方云存储服务来管理图片,图片并不保存在本地,这样的结构,为后台的开发人员省去了很多精力.目前的云存储服务对资源的管理也非常便捷技术也相对成熟,这里我就介绍下目前用的比较多的的七牛云 ...

  2. android 上传头像遇到的问题,Android 7.0 图片剪切问题,选择头像上传

    一. 7.0文件地址传输的问题 异常信息:FileUriExposedException: android:name="android.support.v4.content.FileProv ...

  3. android头像相册/拍照选取,裁剪及上传综合案例

    在android项目中,很多情况下上传头像的需求,像qq,新浪微博,微信,飞信等很多应用都有这样的功能. 之前我写过的两篇文章:andorid下从相册选取/拍照选取一张相片并剪切和android下Bi ...

  4. android使用webview上传文件,Android项目中如何在webview页面中上传文件

    Android项目中如何在webview页面中上传文件 发布时间:2020-11-26 15:56:27 来源:亿速云 阅读:68 作者:Leah 本篇文章为大家展示了Android项目中如何在web ...

  5. android 加载系统私有库,Android 搭建私有maven仓库及上传项目

    前言 在日常工作及项目迭代过程中,一定有不少同学自己写了一些框架性的东西,或者一些好用的工具,总之就是能复用的代码.然而也有不少同学为了复用这些代码不得不复制粘贴到不同项目中,这样相同的功能出现了多份 ...

  6. android com.mylhyl,Android 高仿微信朋友圈拍照上传功能

    模仿微信朋友圈发布动态,输入文字支持文字多少高度自增,有一个最小输入框高度,输入文字有限制,不过这些都很easy! 1. photopicker的使用 这是一个支持选择多张图片,点击图片放大,图片之间 ...

  7. 微信多图上传,解决android多图上传失败问题

    微信提供了文件上传的方法wx.uploadFile来上传我们的图片 wx.chooseImage({success: function(res) {var tempFilePaths = res.te ...

  8. android 微信高仿,Android 高仿微信朋友圈拍照上传功能

    模仿微信朋友圈发布动态,输入文字支持文字多少高度自增,有一个最小输入框高度,输入文字有限制,不过这些都很easy! 1. PhotoPicker的使用 这是一个支持选择多张图片,点击图片放大,图片之间 ...

  9. shell 截屏 android,Android 使用Shell脚本截屏并自动传到电脑上

    Android 使用Shell脚本截屏并自动传到电脑上 Android设备用久了,截屏是个麻烦事.更麻烦的是通过qq传到电脑上,倒腾半天.其实用adb命令就可以截屏,然后写个pull的语句就可以拉到电 ...

  10. Android 通过python实现自动化构建打包上传加固

    Android 通过python实现自动化构建打包上传加固 实现需求: 基于gradle命令,通过python实现多渠道,多环境打包,上传蒲公英,360加固等 经过学习调研完成步骤如下: 一,通过gr ...

最新文章

  1. java 静态块的作用域_java 学习笔记(一)
  2. 注册窗口类 registerclass
  3. Keras中LSTM的return_sequences和return_state
  4. 基于html5背景图片自适应代码
  5. 好的领导应该是什么脾气
  6. 使用VS2015的Visual Studio Installer打包
  7. nginx 完全关闭 access_log
  8. 想法独特 上半年最具特色摄像头集锦
  9. wer 流程图编程_WER机器人搭建学习实操练习
  10. 58节沈大海H5edu.cn2016javaScript视频教程打包下载
  11. 【脱壳-寻找OEP】通过堆栈平衡法找到OEP(ESP定律)
  12. OpenCV在图片和视频中的人脸检测
  13. 一篇文章带你了解国企程序员(超详细)
  14. 用k-mer分析进行基因组调查:(六)用KmerGenie一步实现
  15. 计算机无法连接路由器上网,为什么路由器无法连接到网络,但是路由器无法连接到互联网!...
  16. Java递归解压zip压缩包
  17. 点云txt文件—pcd文件
  18. 软件工程概论期末复习笔记
  19. 六、字体样式和文本样式
  20. 通过id查用户名php,通过用户名称获取微博id

热门文章

  1. Tomcat BIO . NIO . ARP 配置
  2. oppo5.0以上系统怎么样不Root激活Xposed框架的经验
  3. 【Fiddler 实战操作】如何使用 Fiddler 对苹果手机进行抓包
  4. 【Python】文本进度条
  5. 字符串第一个出现的单个字符_如何在不编写单个应用程序的情况下找到我的第一个开发人员工作
  6. houdini_通过卡通了解CSS Houdini的指南
  7. maven summer_我在Google Summer of Code的经历
  8. 113_Power Pivot 销售订单之重复购买率及购买间隔天数相关
  9. mac安装和使用boost库
  10. centos mysql安装