Forzare download di ebook con php
Se abbiamo un sito web che supporta php possiamo ricorrere questo semplice stratagemma per forzare il download di php.
Creiamo un nuovo file intitolato "download.php".
Apriamolo con il blocco note e incolliamo il seguente testo :
<?php
$filename = $_GET['file'];
// required for IE, otherwise Content-disposition is ignored
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');
// addition by Jorg Weske
$file_extension = strtolower(substr(strrchr($filename,"."),1));
if( $filename == "" )
{
echo "ERROR: download file NOT SPECIFIED. USE force-download.php?file=filepath";
exit;
} elseif ( ! file_exists( $filename ) )
{
echo "ERROR: File not found. USE force-download.php?file=filepath";
exit;
};
switch( $file_extension )
{
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header("Content-Type: $ctype");
// change, added quotes to allow spaces in filenames, by Rajkumar Singh
header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
exit();
?>
Addeso, caricate il file "download.php" sul vostro sito.
Per scaricare un file , basta che creiate un collegamento al file "download.php" e aggiungete "?file=url" dove url é l' indirizzo del file da scaricare.
Ecco un esempio di link corretto : http://www.sito.com/download.php?file=ebook/divina-commedia.pdf
2 commenti:
alcuni siti che contengono ebooks in italiano:
http://giovannigronchi.altervista.org/ebooks/
http://antoniosegni.altervista.org/ebooks/
http://giuseppesaragat.altervista.org/ebooks/
http://mwbeijerinck.helloweb.eu/ebooks/
http://giovannileone.helloweb.eu/ebooks/
http://sandropertini.helloweb.eu/ebooks/
http://francescokossiga.helloweb.eu/ebooks/
http://oscarluigi.helloweb.eu/ebooks/
Ho fatto diverse ricerche su internet , nei forum ho trovato solo aiuti difficili da capire quindi inutili.. finalmente ho scoperto questo tuo articolo e ho trovato un aiuto concreto..funziona benissimo.. grazie!
Posta un commento