Secondo me c'èun pò di confusione sulle possibilità e modalità di download di un file dalla rete.
Premetto che la cosa migliore sarebbe quella di zippare i file prima di metterli sul server, questo eviterà molti problemi.
Cosa succede quando proviamo a scaricare qualcosa ?
Il browser su un link del tipo :
Non riconoscendo il formato come quello di un programma che riesce ad aprire ( tipo Word, Power Point, etc ... ) mostra la finestra di 'Salva con oggetto con Nome' ( per IE ma simile anche agli altri browser ).
Fin qui tutto Ok !
Se il file invece ha un'estesione 'conosciuta' come .doc .rtf .pps .xls ect ... prova ad aprirla con un programma che riesce a far 'girare' come negli esempi Word, Power Point, Excel ,...
Quindi per ovviare a questo o si zippa il file oppure se si ha il supporto sul server di un linguaggio server side ( ad es PHP ) si può fare un download .
Soluzione proposta in un 3d da guidoz :
http://www.tuosito.it/downloader.php?file=nomefile.pdf
dove downloader.php è:
codice:
//controllo per evitare che l'utente alterando la querystring riescano a scaricare altri files [magari i sorgenti php ^_^]
if(substr($_GET['file'], -3, 1) != 'pdf')
{
echo 'errore';
exit;
}
//leggo il file in una variabile
$contenuto = implode('', file($_GET['file']))
//informo il browser che quanto sto per inviare è un pdf
header("Content-Type: application/pdf");
//informo il browser che deve scaricare il file
header("Content-Disposition: attachment; filename={$_GET['file']}");
//informo il browser che si tratta di un trafserimento binario
header("Content-Transfer-Encoding: binary");
//invio il file al browser
echo $contenuto;
Spero di essere stato abbastanza chiaro ... buon lavoro !