Ho creato uno script in php che effettua il download dei files salvati in una cartella protetta da Apache...ma al momento di scaricare il file, scarica il file scelto ma di 0 byte di dimensione, come mai?
Lo script è questo:
Codice PHP:
<?php
include_once("common.php");
session_start(); //si inizia o continua la sessione
$percorso = isset($_GET['percorso']) ? $_GET['percorso'] : "" ; //Percorso relativo del file da scaricare
if(IsSet($_SESSION['user']) && IsSet($_GET['percorso']))//siamo loggati
{
if(ini_get('zlib.output_compression')) { ini_set('zlib.output_compression', 'Off'); }
$file = $host.$rootdir.$archivio.$percorso; //Percorso assoluto del file da scaricare
$address_file = str_replace('downloadFile.php',$archivio.$percorso,$_SERVER['SCRIPT_FILENAME']);
if (strpos($_SERVER["SystemRoot"],'WINDOWS') > 0){
$address_file = str_replace('/','\\\',$address_file); // Percorso fisico del file da scaricare (C:\\www\\apache\\httpsdoc\\gestionale\\archivio\\ecc...)
}
$userpass = md5($username_areariservata . ":" . $password_areariservata);
header("Authorization: basic $userpass");
header('Pragma: public'); // required
header('Expires: 0'); // no cache
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private',false);
header("Content-Type: application/force-download");
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($address_file) ); // provide file size
//readfile($accesso); // push it out
exit();
}else{
header("Location: $servername$rootdir?pg=filenotfound");
}
?>
Premetto che la funzione filesize($address_file) mi restituisce esattamente la dimensione del file, ma al moemnto di scaricare il file mi scarica 0 bytes, qualcuno saprebbe darmi qualche dritta?