0

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

4

1 回答 1

6

我解决了这个问题

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();
    }
}

谢谢您的回复......

于 2013-02-26T08:41:39.567 回答