-2

我想从服务器下载文件,我的服务器链接是这样的:
获取下载的文件名和扩展名在Android的

http://10.30.170.46/portal/fileLoader.php?code=351c4b27e3673c16557c231487997885


,所以我不知道这是什么文件名和延期! 我如何获得文件名和扩展名?
我下载我的文件,与此代码: 用法:

new DownloadFileFromURL().execute("http://10.30.170.46/portal/fileLoader.php?code=351c4b27e3673c16557c231487997885"); 


类:

class DownloadFileFromURL extends AsyncTask<String, String, String> { 

    /** 
    * Before starting background thread 
    * Show Progress Bar Dialog 
    * */ 
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN) 
    @SuppressLint("NewApi") 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     //showDialog(progress_bar_type); 
     NotifInstaDown("Please Wait...", "Downloading"); 
    } 

    /** 
    * Downloading file in background thread 
    * */ 
    @Override 
    protected String doInBackground(String... f_url) { 
     int count; 
     try { 
      URL url = new URL(f_url[0]); 
      URLConnection conection = url.openConnection(); 
      conection.connect(); 
      int lenghtOfFile = conection.getContentLength(); 
      InputStream input = new BufferedInputStream(url.openStream(), 8192); 

        output = new FileOutputStream("/sdcard/Circulars/" + fileName); 
        byte data[] = new byte[1024]; 
        long total = 0; 
        while ((count = input.read(data)) != -1) { 
         total += count; 
         publishProgress(""+(int)((total*100)/lenghtOfFile)); 
         output.write(data, 0, count); 
        } 
        output.flush(); 
        output.close(); 
        input.close(); 
     } catch (Exception e) { 
      Log.e("Error: ", e.getMessage()); 
     } 

     return null; 

    } 

    /** 
    * Updating progress bar 
    * */ 
    protected void onProgressUpdate(String... progress) { 
     // setting progress percentage 
    } 

    /** 
    * After completing background task 
    * Dismiss the progress dialog 
    * **/ 
    @Override 
    protected void onPostExecute(String file_url) { 
     //dismissDialog(progress_bar_type); 
     removeNotification(); 
    } 
} 

回答

0

试试这个

  URL url; 
      String filename = null; 
      try { 
       url = new URL("YOR_URL"); 
      HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
      conn.connect(); 
      conn.setInstanceFollowRedirects(false); 

      try { 
       for(int i = 0; i < 10; i++) 
       { 
        url = new URL(conn.getHeaderField("Location")); 
        conn = (HttpURLConnection) url.openConnection(); 
        conn.connect(); 
        conn.setInstanceFollowRedirects(false); 
       } 
      } catch (Exception e) { 
      } 

      String depo = conn.getHeaderField("Content-Disposition"); 
      String depoSplit[] = depo.split(";"); 
      int size = depoSplit.length; 
      for(int i = 0; i < size; i++) 
      { 
       if(depoSplit[i].startsWith("filename=")) 
       { 
        filename = depoSplit[i].replace("filename=", "").replace("\"", "").trim(); 

        i = size; 
       } 
      } 
      } catch (MalformedURLException e1) { 
       e1.printStackTrace(); 
      } catch (IOException e) { 
      } 
相关问题