Autore Topic: Download File in PHP  (Letto 2316 volte)

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Download File in PHP
« il: 18 Luglio 2011, 15:05:34 »
Ciao a tutti,
qualche tempo fa, avevo scritto uno script PHP per effettuare il download da remoto di un file.

Il codice è questo:

<?PHP
 $file_path = "../SW/libYAD 1_2.tar.gz";
    
 header("Content-Type: application/x-gzip");
 header("Content-Transfer-Encoding: binary");
 header("Content-Disposition: attachment; filename=".$file_path);
 header("Content-Description: Download PHP");
 header("Content-Lenght: 1247675;");//CAMBIARE!!!
 readfile($file_path);

 //Mi invio una mail per contare i download!
 mail("clros@tiscali.it",
        "Scaricato archivio",
   "E' stata scaricato una volta il file!",
   "From: http://www.fjmsoftware.altervista.org)

Ho qualche dubbio su quel :
header("Content-Type: application/x-gzip");
però...prima funzionava..bho?
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re: Download File in PHP
« Risposta #1 il: 18 Luglio 2011, 15:15:33 »
la butto lì.... non è che, per caso, la pagina va in timeout e si interrompe il download a metà?
Verifica la dimensione scaricata con quella prevista, e poi con un hex editor controlla che il file non contenga spazzatura, tipo una fila di zeri oppure una pagina html con scritto "Altervista hardly sucks" o cose simili :D
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re: Download File in PHP
« Risposta #2 il: 18 Luglio 2011, 17:15:39 »
Citazione da: "TheKaneB"
la butto lì.... non è che, per caso, la pagina va in timeout e si interrompe il download a metà?
Verifica la dimensione scaricata con quella prevista, e poi con un hex editor controlla che il file non contenga spazzatura, tipo una fila di zeri oppure una pagina html con scritto "Altervista hardly sucks" o cose simili :D

Per il timeout ci avevo pensato anche io..ma è un file da 1,3 MByte, finisce subito...

Ho controllato la dimensione dell'archivio scaricato: è 2 Bytes più grande di quello che dovrebbe scaricare
(1247677 bytes contro 1247675)...ma come mai???
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re: Download File in PHP
« Risposta #3 il: 18 Luglio 2011, 17:18:46 »
vai sotto di hex editor e trova le differenze :D

a occhio e croce, potresti trovare una coppia di byte 0x10 0x13 (ritorno a capo) che danno fastidio ad inizio o fine file. Oppure potresti avere un file pieno di zeri.
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re: Download File in PHP
« Risposta #4 il: 18 Luglio 2011, 17:22:57 »
No, il file non è pieno di zeri, però l'idea dell' LF + CR potrebbe essere...ma in caso, come risolvere?
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re: Download File in PHP
« Risposta #5 il: 18 Luglio 2011, 17:30:11 »
assicurati che prima del tag <?php e dopo il tag ?> non ci sia NULLA, nemmeno il ritorno a capo.

Il PHP, essendo un linguaggio che si "intercala" dentro un file html, ti incolla in output tutto il file, processando il codice entro i tag e copiando tutto il resto "pari pari".
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re: Download File in PHP
« Risposta #6 il: 18 Luglio 2011, 17:42:26 »
Citazione da: "TheKaneB"
assicurati che prima del tag <?php e dopo il tag ?> non ci sia NULLA, nemmeno il ritorno a capo.

Il PHP, essendo un linguaggio che si "intercala" dentro un file html, ti incolla in output tutto il file, processando il codice entro i tag e copiando tutto il resto "pari pari".

Cazzarola...sai che ora funge? C'era un newline alla fine del file .PHP come mi suggerivi...

Però, non capisco come mai prima funzionava (ne sono sicuro) e poi, all'improvviso non è più andato...
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re: Download File in PHP
« Risposta #7 il: 18 Luglio 2011, 17:46:34 »
sicuramente è colpa di un edit incauto... oppure il difetto è da ricercarsi a monte della scelta del PHP come linguaggio per il tuo sito


PS: :shhh: anche questo sito è fatto in php...
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re: Download File in PHP
« Risposta #8 il: 18 Luglio 2011, 17:50:49 »
Citazione da: "TheKaneB"
sicuramente è colpa di un edit incauto... oppure il difetto è da ricercarsi a monte della scelta del PHP come linguaggio per il tuo sito


PS: :shhh: anche questo sito è fatto in php...

 :D  :D  :D

Però, oltre a PHP conosco (conoscevo) solo JSP ma, se non ricordo male, Altervista ha solo l'interprete PHP per cui...
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re: Download File in PHP
« Risposta #9 il: 18 Luglio 2011, 17:53:22 »
per cui cambia host :lol:
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re: Download File in PHP
« Risposta #10 il: 18 Luglio 2011, 17:54:52 »
Citazione da: "TheKaneB"
per cui cambia host :lol:
Ottima risposta!!  :lol:
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

AmigaCori

  • Visitatore
Re: Download File in PHP
« Risposta #11 il: 19 Luglio 2011, 00:58:18 »
Citazione da: "clros"
Citazione da: "TheKaneB"
per cui cambia host :lol:
Ottima risposta!!  :lol:

 :laughing-rolling:
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »

Tags: