Script php: Download file in streaming

   difficoltà:  script script script script script

Script simili
15/9/2006


Questo script è utile in modo particolare in due casi: quando si vuol impedire che il browser apra il file con il proprio plugin, per esempio per documenti pdf, word o se necissita far scaricare file php. L'altro caso è il voler far scaricare il file senza farne conoscere il percorso per motivi di sicurezza o per esempio solo ad utenti registrati.
Il file per scaricare il documento documento.doc sarà:

<?
$filename="documento.doc";
header("Content-type: Application/octet-stream");
header("Content-Disposition: attachment; filename=".$filename);
header("Content-Description: Download scheda");
$file_name="public/documenti/".$filename;
readfile($file_name);
?>
Si potrebbe anche passare attraverso un form via post o get il file da scaricare per esempio mettendo come link invece del percorso del file download.php?filename=documento.doc facendo un controllo sull'esistenza del file nel file download.php

Social:


Donazione:
Se questo script ti è stato utile e ti ho fatto risparmiare tempo e denaro fai una
qualsiasi cifra è ben accetta! 1€, 3€, 5€ ,10€, 50€ ;-) fai te!

Permalink: Tag:
script   php   download   streaming   file  
Script Simili: Permalink: Link utili:
Tools:
Feed RSS    



Commenti


  Fabio

26/3/2007 16:50:50

Poichè con alcuni settaggi del server si possono avere problemi di memoria con tando di download non completo, che si ferma dopo qualche mega, riporto la soluzione che ho trovato:

readfile_chunked:

http://it.php.net/manual/it/function.readfile.php#54295

  arnold

18/2/2008 16:50:36

ciao ho utlizzato il tuo script..una volta che scarico il file dal mio sito al mio pc ,ad esempio una jpg..nn mi visualizza nulla quando tento di aprirla...

se poi l apro con il notepag mi esce tutto il codice html della pagina del mio sito + strani segni dovuti al codice php..

sai per caso cosa potrebbe esere??

  Fabio

18/2/2008 16:57:11

controlla che non ci siano spazi da nessuna parte o che lo script non scriva nulla a video. non ci devono essere output

  arnold

18/2/2008 17:08:54

nn ci sono spazi.
.ma cmq la variabile $file_name deve iniziare con

$file_name = $_SERVER["DOCUMENT_ROOT"]."ciao.jpg";
o

$file_name = "http://www.miosito.it/ciao.jpg";

lo script nn scrive nulla a video..però naturlamente c'è del codice html che mi serve per fare la grafica del sito..

e questo codice html come ti dicevo prima viene salvato nel file al posto della jpg..


  Fabio

18/2/2008 17:17:03

esatto...non ci deve essere del contenuto html, dovresti fare un file che fa solo lo streaming. con solo codice php, no grafica, no html, attento anche a spazi bianchi che posson dar problemi. il nome del file non deve essere http://... ma un indirizzo locale.

  arnold

18/2/2008 17:32:46

niente..ho messo lo script in una pagina deserta..
ma mi da sempre il solito problema..

cmq se commento il tuo codice e printo il $file_name

mi esce /var/www/vhosts/miosito.it/httpdocs/download/add.gif

ed è giusto..

ma nella variabile $filename devo mettere solo "add.gif" giusto ?

  Fabio

18/2/2008 17:45:06

ma aprendo il file col notepad cosa ti dice? se ti scrive qlsa dovrebbe essere l'errore che riscontra.

  arnod

18/2/2008 17:53:03

mi fa veder del codice strano fatto di quadratini..,
cmq è giusto perchè se te apri una qualsiasi immagine con il notepad ti fa vedere dei quadrati..

quindi in teoria ci siamo il file l ho scaricato..solo che nn lo apre..

se faccio tasto destro proprietà,la cosa curiosia è che nn mi fa vedere il riepilogo,la parte dove ti mostra l altezza la larghezza ecc ecc..
cmq ora vado a casa..se dovessi risolvere la cosa ti faccio sapere

  Downloadtaky

7/9/2010 22:10:24

Domanda da profano, questo script potrebbe anche consentire di scaricare i file FLV di megavideo sul mio server?
Se si come lo si può modificare?



Lascia un commento


Codice di controllo*:
Nome*:
Email/Link:
Testo*:
 
I campi contrassegnati con * sono obbligatori.