標籤:efault javascrip length nsf expires content post turn 返回
/** * @author default7<[email protected]> * @description 示範PHP彈出下載的原理 * * @param $file_name */function downFile($file_name){ $file_path = "/tmp/" . $file_name; $buffer = 102400; //一次返回102400個位元組 if (!file_exists($file_path)) { echo "<script type='text/javascript'> alert('對不起!該檔案不存在或已被刪除。'); </script>"; return; } $fp = fopen($file_path, "r"); $file_size = filesize($file_path); $file_data = ''; while (!feof($fp)) { $file_data .= fread($fp, $buffer); } fclose($fp); //Begin writing headers header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-type:application/octet-stream;"); header("Accept-Ranges:bytes"); header("Accept-Length:{$file_size}"); header("Content-Disposition:attachment; filename={$file_name}"); header("Content-Transfer-Encoding: binary"); echo $file_data;}
PHP 彈出檔案下載 原理 代碼