Saltar para conteúdo


Foto
- - - - -

obter extensão do ficheiro antes de fazer o download


  • Por favor inicie sessão para responder
2 respostas a este tópico

#1 emanuelx

emanuelx

    Membro

  • Membros
  • PipPip
  • 55 mensagens

Mensagem publicada 23 September 2012 - 23:27

boas pessoal eu tenho aqui um problema e não sei como resolver.

eu uso uma classe para fazer download de ficheiros

mas o url não é do tipo

http://site.php?ficheiro.rar

o url é http://site.php?ficheiro=download

onde é precisso usar o metodo Post para fazer o download do ficheiro.

mas o problema é que por vezes o ficheiro é rar e outras vezes é .zip


protected String doInBackground(String... aurl) {

	try {
		HttpClient httpClient = new DefaultHttpClient();
		 HttpPost httpPost = new HttpPost("[url="http://www.legendas-zone.org/downloadsub.php"]http://www.legendas-...ownloadsub.php"[/url]);
		 httpPost.addHeader("Cookie", login.cooklogin);
		 BasicNameValuePair usernameBasicNameValuePair = new BasicNameValuePair("sid", aurl[0]);
		BasicNameValuePair passwordBasicNameValuePAir = new BasicNameValuePair("action", "download");
		List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>();
		nameValuePairList.add(usernameBasicNameValuePair);
		nameValuePairList.add(passwordBasicNameValuePAir);
		UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(nameValuePairList);
		httpPost.setEntity(urlEncodedFormEntity);
		HttpResponse httpResponse = httpClient.execute(httpPost);
		long lenghtOfFile = httpResponse.getEntity().getContentLength();
		FileOutputStream f = new FileOutputStream(new File(Environment.getExternalStorageDirectory() + "/download/", aurl[1]));
		InputStream in = httpResponse.getEntity().getContent();
		byte[] buffer = new byte[1024];
		int len1 = 0;
		long total = 0;
		while ((len1 = in.read(buffer)) > 0) {
			total += len1;
			publishProgress("" + (int)((total*100)/lenghtOfFile));
			f.write(buffer, 0, len1);
		}
		f.close();
	} catch (Exception e) {
		Log.d("Downloader", e.getMessage());	
	}

	return null;

}


#2 emanuelx

emanuelx

    Membro

  • Membros
  • PipPip
  • 55 mensagens

Mensagem publicada 24 September 2012 - 10:35

eis a solução para quem estiver com o mesmo problema

Header headers[] = httpResponse.getAllHeaders();
        for(Header h:headers){
            System.out.println("teste" + h.getName() + ": " + h.getValue());
        }

o nome do ficheiro com a extensão tal e qual como fosse ser trasferido do navegador está
a frente da palavra content-disposition
  • pedronveloso gosta disto

#3 Rui Miguel

Rui Miguel

    Novato

  • Membros
  • Pip
  • 1 mensagens
  • Aquaris 5

Mensagem publicada 26 October 2012 - 13:36

boas, não consigo abrir os mails no tlf, a informação aparece como: não consegue obter o anexo.
vai uma ajudita...
obg