android开发-服务器端下载多张图片,保存到本地,现在只能保存一张图片

问题描述

服务器端下载多张图片,保存到本地,现在只能保存一张图片

服务端代码:
resp.setContentType("text/html;charset=UTF-8");
// 得到下载用户的名字
String name=req.getParameter("name");
//下载的所有图片
ArrayList downList=UserDbUtil.getInstance().downloadPIC(DbUtil.openDb(), name);

    FileInputStream fis=null;
    OutputStream toClient=null;

    for (int i = 0; i < downList.size(); i++) {
        System.out.println("下载图片的路径:"+downList.get(i));
        // 解决中文乱码问题
        String filename = new String(downList.get(i).getBytes(
                "iso-8859-1"), "UTF-8");
        // 创建file对象
        File file = new File(filename);
        // 设置response的编码方式
        resp.setContentType("application/x-msdownload");

        // 写明要下载的文件的大小
        resp.setContentLength((int) file.length());
        // 设置附加文件名
        // response.setHeader("Content-Disposition","attachment;filename="+filename);
        // 解决中文乱码
        resp.setHeader("Content-Disposition", "attachment;filename="
                + new String(filename.getBytes("gbk"), "iso-8859-1"));
        // 读出文件到i/o流
        fis = new FileInputStream(file);
        BufferedInputStream buReader = new BufferedInputStream(fis);
        byte[] b = new byte[1024];// 相当于我们的缓存
        // 从response对象中得到输出流,准备下载
        toClient = resp.getOutputStream();
        int num;
        // 开始循环下载
        while ((num = buReader.read(b)) != -1) {
            // 将b中的数据写到客户端的内存
            toClient.write(b, 0, num);
        }
        // 将写入到客户端的内存的数据,刷新到磁盘
        toClient.flush();
        toClient.close();
        fis.close();
        System.out.println("下载图片到本地。。。。");
    }

android代码:
/**
* 下载图像方法
*
* @param url
* @return
*/
public static Bitmap downloadBitmap(String url) {
Bitmap bitmap = null;

        HttpGet get = new HttpGet(url);// 下载地址
        // 客户端对象
        HttpClient client = new DefaultHttpClient();
        try {
            HttpResponse resp = client.execute(get);
            if (resp.getStatusLine().getStatusCode() == 200) {
                // 连接成功,获取下载的数据流
                InputStream in = resp.getEntity().getContent();

                // 将数据流转为图像并返回(注意大图处理)
                bitmap = BitmapFactory.decodeStream(in);

                //获取长度
                in.close();// 关闭流
                Log.e("nnnnnnn", "服务器下载到图片");

            }
            client.getConnectionManager().shutdown();
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } // 执行连接获取结果
        return bitmap;
    }

解决方案

一个url只能下一个文件,你可以发送zip文件,再在android端解压

时间: 2024-11-03 08:28:33

android开发-服务器端下载多张图片,保存到本地,现在只能保存一张图片的相关文章

软件-请教一下Android开发 服务器端的问题

问题描述 请教一下Android开发 服务器端的问题 我是新手,不太了解服务器.想问问服务器对于一个软件,比如人人网的android客户端吧,来说的角色是什么? 软件做到什么程度了开始搭建服务器? 还有就是例如我写的本地注册登录账号的功能,在搭建服务器的时候这些代码应该是经过少部分改动就能加到服务器上注册登录吧? 解决方案 我们是项目开始的时候就把所需的接口都定义啊,客户端先用假数据,服务器端也开始写,写好了就直接调用.首先一定要把借口定义好,要不然改的代码可就多了

Android开发仿下载助手多线程下载及原理

仿下载助手界面效果 开发仿下载助手多线程下载及原理-android 双开助手原理"> 线程池 ThreadPoolExecutor 在下面介绍实现下载原理的时候,我想尝试倒着来说,这样是否好理解一点? 我们都知道,下载助手,比如360, 百度的 手机助手,下载APP 的时候 ,都可以同时下载多个,所以,下载肯定是多线程的,所以我们就需要一个线程工具类 来管理我们的线程,这个工具类的核心,就是 线程池. 线程池ThreadPoolExecutor ,先简单学习下这个线程池的使用  /**  

Android将list数据通过LitePal保存到本地(集合保存到本地)

有时候我们需要将list集合保存到本地,自己写起来太麻烦,就找到了强大的框架LItePal,git地址  https://github.com/LitePalFramework/LitePal 本文来自:http://blog.csdn.net/elinavampire/article/details/40621751 导入jar包就可以使用了,直接上代码: package com.sdufe.litepal; import java.util.ArrayList; import java.ut

Android GIS开发资料:UCMap for Android 开发教程 下载

问题描述 移动GIS,是当前最热门的GIS开发方向,UCMapforAndroid是领先的移动GIS开发组件,在各行业有着广泛的应用,本文详细讲述了UCMap的开发过程.UCMapforAndroid开发教程http://www.creable.cn/kuibu/xiazai.asp 解决方案 解决方案二:广告贴啊~~解决方案三:这个移动GIS开发教程不错,下载学习一下解决方案四:正在找这样的AndroidGIS教程,UCMap听同学说很不错,试用一下

Android开发登陆案例_Android

layout <?xml version="1.0"?> -<LinearLayout android:paddingTop="@dimen/activity_vertical_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingLeft="@dimen/activity_horizontal_margin&qu

Android开发之在程序中时时获取logcat日志信息的方法(附demo源码下载)_Android

本文实例讲述了Android开发之在程序中时时获取logcat日志信息的方法.分享给大家供大家参考,具体如下: 今天分享一个在软件开发中很实用的例子,也是这几天在通宵加班中我使用的一个小例子, 在程序中监听Log信息. 为什么说它实用?原因是Android的开发厂商各种修改之后手机和手机之间以后存在很多差异.比如说魅族M9手机 开发中如果项目中涉及到访问手机系统的地方,例如访问系统短信库,M9手机它会提示一个dialog框 让用户自己去选择 访问还是不访问.这样就给开发适配带来了巨大的麻烦.本来

Android源码下载及开发环境的搭建

1.前言         前一博文给自己列了一下Android的学习计划,是时候一个个的完成了.如计划列的,我要写的第一篇是<Android源码 的下载及开发环境的搭建>,致于如何去下载源码,其实网上已经一大堆的帖子了,一搜就有.但在这里,我想说,一个源码的下载,不是简单的把源码下载下来之 样就OK了,就可以开始你的源码学习之旅.要想更好的学习源码和进行开发,一个适合自己的开发环境还是必不可少的,这里我会列出来我给自己准备的开发环境 的做法,不能说明是最优的,但至少我感觉对我来说还是挺方便的.

Android开发权威指南(第2版)新书发布(免费下载随书光盘内容,包括Android源代码)

光盘内容下载 光盘内容下载(新浪微盘) Android4.2.2(CM ROM)源代码下载 如果需要虚拟环境的,这里提供了ubuntu10.04 LTS版本,不需要CPU支持虚拟化(VirtualBox版[VirtualBox-4.2.10-84105]) Ubuntu10.04 VirtualBox版 分卷1 分卷2 分卷3 分卷4 分卷5 分卷6   用户名:root 秘密:12345678   <Android开发权威指南(第二版)>是畅销书<Android开发权威指南>的升

在android开发中如何搜索下载国外精美的图标资源

问题描述 在android开发中如何搜索下载国外精美的图标资源 在安卓开发中,图标是我们经常和必须用到的东西,但是自己设计图标又不在行,只能在网上搜索,但是国内很多网站的图标资源是收费的,如何找到国外的图标资源站,谢谢! 解决方案 https://www.iconfinder.com/