Android编程实现图片的上传和下载功能示例_Android

本文实例讲述了Android编程实现图片的上传和下载功能。分享给大家供大家参考,具体如下:

在实现一个Android的WEB服务客户端,比如微博,论坛客户端时,经常会使用到图片的上传和下载。在这里介绍如何利用HttpClient实现图片的上传和下载功能。

1 图片上传:上传图片时,首先获得图片的路径,创建文件,并将图片转化为字节流写入到request,并发送该请求。

客户端代码:

File file = new File(imageUrl);
String httpUrl = httpDomain+"AddImageServlet"+"?gid="+gid;
HttpPost request = new HttpPost(httpUrl);
HttpClient httpClient = new DefaultHttpClient();
FileEntity entity = new FileEntity(file,"binary/octet-stream");
HttpResponse response;
try {
  request.setEntity(entity);
  entity.setContentEncoding("binary/octet-stream");
  response = httpClient.execute(request);
//如果返回状态为200,获得返回的结果
if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
……//图片上传成功
}
}
catch(Exception e){
}

服务器端所做的工作则是接收该字节流,写入文件中,并在服务器中相应文件夹中保存该文件,并记录该文件的路径,将图片文件路径写入到数据库中保存。

服务器端代码:

//获得新闻id
String gid = request.getParameter("gid");
String filePath = getRealPath(request) + "\\userpic\\";
//   定义上载文件的最大字节
int MAX_SIZE = 102400 * 102400;
//   声明文件读入类
DataInputStream in = null;
FileOutputStream fileOut = null;
//   取得客户端上传的数据类型
String contentType = request.getContentType();
if(contentType.indexOf("binary/octet-stream") >= 0){
  //   读入上传的数据
  in = new DataInputStream(request.getInputStream());
  int formDataLength = request.getContentLength();
  // 如果图片过大
  if(formDataLength > MAX_SIZE){
    String errormsg=("上传的文件字节数不可以超过" + MAX_SIZE);
    out.println(errormsg);
    return ;
  }
//   保存上传文件的数据
byte dataBytes[] = new byte[formDataLength];
int byteRead = 0;
int totalBytesRead = 0;
//   上传的数据保存在byte数组
while(totalBytesRead < formDataLength){
byteRead = in.read(dataBytes,totalBytesRead,formDataLength);
totalBytesRead += byteRead;
 }
String fileName = filePath + gid+".png";
 //   检查上载文件的目录是否存在
File fileDir = new File(filePath);
if(!fileDir.exists()){
fileDir.mkdirs();
}
//   创建文件的写出类
fileOut = new FileOutputStream(fileName);
//   保存文件的数据
fileOut.write(dataBytes);
fileOut.close();
//保存文件的路径名
……

2 图片下载:首先获得网络图片的图片地址,发送请求后,服务器将会返回该图片的字节流,利用BitmapFactory.decodeStream()方法将字节流转化为图片并返回。具体代码如下:

//获得网络中的图片
public Bitmap getGossipImage(String gid){
    String httpUrl = httpDomain+"userpic/"+gid+".png";
    Bitmap bitmap = null;
    HttpGet httpRequest = new HttpGet(httpUrl);
    //取得HttpClient 对象
    HttpClient httpclient = new DefaultHttpClient();
    try {
      //请求httpClient ,取得HttpRestponse
      HttpResponse httpResponse = httpclient.execute(httpRequest);
      if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
        //取得相关信息 取得HttpEntiy
        HttpEntity httpEntity = httpResponse.getEntity();
        InputStream is = httpEntity.getContent();
        bitmap = BitmapFactory.decodeStream(is);
        is.close();
      }else{
         Toast.makeText(context, "连接失败!", Toast.LENGTH_SHORT).show();
      }
    } catch (ClientProtocolException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
    return bitmap;
}

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android图形与图像处理技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, 图片
, 上传
下载
android实现文件上传、android实现图片上传、android 实现上传头像、dom编程艺术示例图片、pic12f1822编程示例,以便于您获取更多的相关知识。

时间: 2024-10-27 18:07:08

Android编程实现图片的上传和下载功能示例_Android的相关文章

Android编程实现图片的上传和下载功能示例

本文实例讲述了Android编程实现图片的上传和下载功能.分享给大家供大家参考,具体如下: 在实现一个Android的WEB服务客户端,比如微博,论坛客户端时,经常会使用到图片的上传和下载.在这里介绍如何利用HttpClient实现图片的上传和下载功能. 1 图片上传:上传图片时,首先获得图片的路径,创建文件,并将图片转化为字节流写入到request,并发送该请求. 客户端代码: File file = new File(imageUrl); String httpUrl = httpDomai

Android中图片的上传和下载

作者:余蒙       在实现一个Android的WEB服务客户端,比如微博,论坛客户端时,经常会使用到图片的上传和下载.在这里介绍如何利用HttpClient实现图片的上传和下载功能. 1 图片上传:上传图片时,首先获得图片的路径,创建文件,并将图片转化为字节流写入到request,并发送该请求. 客户端代码:         File file = new File(imageUrl); String httpUrl = httpDomain+"AddImageServlet"+&

Android Http实现文件的上传和下载_Android

最近做一个项目,其中涉及到文件的上传和下载功能,大家都知道,这个功能实现其实已经烂大街了,遂.直接从网上荡了一堆代码用,结果,发现网上的代码真是良莠不齐,不是写的不全面,就是有问题,于是自己重新整理了一番,把它们发出来,希望更多人能受用. 文件上传 通过org.apache.commons.httpclient.HttpClient来实现文件上传,该jar包可以直接从网上所搜.下载. /** * @param mContext 上下文 * @param targetUrl 文件上传地址 * @p

(提问)Android通过Ksoap2链接wcf上传文件的功能

问题描述 Android通过Ksoap2链接wcf上传文件的功能应该如何实现,求案例 解决方案 解决方案二:同求,楼主这个问题解决了么?我最近也在做这个

MyBatis与SpringMVC相结合实现文件上传、下载功能_java

环境:maven+SpringMVC + Spring + MyBatis + MySql 本文主要说明如何使用input上传文件到服务器指定目录,或保存到数据库中:如何从数据库下载文件,和显示图像文件并实现缩放. 将文件存储在数据库中,一般是存文件的byte数组,对应的数据库数据类型为blob. 首先要创建数据库,此处使用MySql数据库. 注意:文中给出的代码多为节选重要片段,并不齐全. 1. 前期准备 使用maven创建一个springMVC+spring+mybatis+mysql的项目

拥有网页版小U盘 ASP.NET实现文件上传与下载功能_实用技巧

今天看到了一篇不错的文章,就拿来一起分享一下吧. 实现的是文件的上传与下载功能. 关于文件上传: 谈及文件上传到网站上,首先我们想到的就是通过什么上传呢?在ASP.NET中,只需要用FileUpload控件即可完成,但是默认上传4M大小的数据,当然了你可以在web.config文件中进行修改,方式如下: <system.web> <httpRuntime executionTimeout="240" maxRequestLength="20480"

Java实现FTP文件的上传和下载功能的实例代码_java

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件.在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)."下载"文件就是从远程主机拷贝文件至自己

Android关于FTP文件上传和下载功能详解

本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 此篇博客为整理文章,供大家学习. 1.首先下载commons-net  jar包,可以百度下载. FTP的文件上传和下载的工具类: package ryancheng.example.progressbar; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.Outpu

C#实现文件上传与下载功能实例_C#教程

最近学习了 C#实现文件上传与下载,现在分享给大家. 1.C#文件上传 创建MyUpload.htm页面,用于测试 <form name="form1" method="post" action="UploadFile.aspx" id="form1" enctype="multipart/form-data"> <input type="file" id="