NSA - Non Solo Amiga

SOFTWARE => Linguaggi di programmazione e scripting => Topic aperto da: clros - 18 Luglio 2011, 15:05:34

Titolo: Download File in PHP
Inserito da: clros - 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 (http://www.fjmsoftware.altervista.org))

Ho qualche dubbio su quel :
header("Content-Type: application/x-gzip");
però...prima funzionava..bho?
Titolo: Re: Download File in PHP
Inserito da: TheKaneB - 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
Titolo: Re: Download File in PHP
Inserito da: clros - 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???
Titolo: Re: Download File in PHP
Inserito da: TheKaneB - 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.
Titolo: Re: Download File in PHP
Inserito da: clros - 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?
Titolo: Re: Download File in PHP
Inserito da: TheKaneB - 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".
Titolo: Re: Download File in PHP
Inserito da: clros - 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...
Titolo: Re: Download File in PHP
Inserito da: TheKaneB - 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...
Titolo: Re: Download File in PHP
Inserito da: clros - 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...
Titolo: Re: Download File in PHP
Inserito da: TheKaneB - 18 Luglio 2011, 17:53:22
per cui cambia host :lol:
Titolo: Re: Download File in PHP
Inserito da: clros - 18 Luglio 2011, 17:54:52
Citazione da: "TheKaneB"
per cui cambia host :lol:
Ottima risposta!!  :lol:
Titolo: Re: Download File in PHP
Inserito da: AmigaCori - 19 Luglio 2011, 00:58:18
Citazione da: "clros"
Citazione da: "TheKaneB"
per cui cambia host :lol:
Ottima risposta!!  :lol:

 :laughing-rolling: