从服务器下载图像并保存在SD卡

问题描述:

嗨在我的应用程序,我必须从服务器下载图像并保存到SD卡。请告诉如何做到这一点。从服务器下载图像并保存在SD卡

+0

你对谷歌这个问题一旦搜索?你试过了什么? – 2013-02-26 07:38:50

+0

[让我来为你google](http://bit.ly/Yy67LB) – 2013-02-26 07:40:57

我通过

private void downloadImagesToSdCard(String downloadUrl,String imageName) 
{ 
    try{ 
     URL url = new URL(downloadUrl); //you can write here any link 

     File myDir = new File("/sdcard"+"/"+Constants.imageFolder); 
     //Something like ("/sdcard/file.mp3") 


     if(!myDir.exists()){ 
      myDir.mkdir(); 
      Log.v("", "inside mkdir"); 

     } 

     Random generator = new Random(); 
     int n = 10000; 
     n = generator.nextInt(n); 
     String fname = imageName; 
     File file = new File (myDir, fname); 
     if (file.exists()) file.delete(); 

      /* Open a connection to that URL. */ 
      URLConnection ucon = url.openConnection(); 
      InputStream inputStream = null; 
      HttpURLConnection httpConn = (HttpURLConnection)ucon; 
      httpConn.setRequestMethod("GET"); 
      httpConn.connect(); 

      if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) { 
      inputStream = httpConn.getInputStream(); 
      } 

      /* 
      * Define InputStreams to read from the URLConnection. 
      */ 
      // InputStream is = ucon.getInputStream(); 
      /* 
      * Read bytes to the Buffer until there is nothing more to read(-1). 
      */ 

      FileOutputStream fos = new FileOutputStream(file); 
      int size = 1024*1024; 
      byte[] buf = new byte[size]; 
      int byteRead; 
      while (((byteRead = inputStream.read(buf)) != -1)) { 
       fos.write(buf, 0, byteRead); 
       bytesDownloaded += byteRead; 
      } 
      /* Convert the Bytes read to a String. */ 

      fos.close(); 

    }catch(IOException io) 
    { 
     networkException = true; 
     continueRestore = false; 
    } 
    catch(Exception e) 
    { 
     continueRestore = false; 
     e.printStackTrace(); 
    } 
} 

感谢您的答复解决了这个问题......

+0

请提供完整的代码或列表引用使用,使用本地变量,所以,你的代码可能会对其他人有用。 – 2014-04-19 00:42:21