快速問題:我有一個強制用戶輸入電子郵件的表單,之後下載/附件被按下並且文件被下載...文件下載正常...但是...PHP下載方法掛斷頁面...推送下載的最佳實踐?
我的問題是,當下載開始時,頁面鎖定,用戶無法導航任何地方或在頁面上做任何事情,直到文件被下載(即:點擊下面的「回家」鏈接)。比我在這裏提出的更好的解決方案?我知道我可能錯過了一些非常簡單的事情......這是我第一次創建私人下載頁面。
<script type="text/javascript">
function redirect_function(loc){
window.location = loc;
}
</script>
<?php
// after form is submitted
$condition_met=check($_POST['email']);
if($condition_met) { ?>
<p>Your file will begin downloading in 5 seconds.</p> <a>go home</a>
<script type="text/javascript">
setTimeout('redirect_function("download.php")', 5000);
</script>
<?php } ?>
被叫(的download.php)頁面看起來是這樣的,這是它掛上網頁...
<?php
ob_start();
if($some_condition) { // check for authorization, etc
$file='location/file.ext';
header('Content-type: application/force-download');
header('Content-disposition: attachment; filename="'. basename($file) .'"');
header('Content-length: '. filesize($file));
readfile($file);
} else {
echo "error message";
}
ob_end_flush();
?>
5000的超時時間是什麼? – Stewie 2010-09-28 20:04:03
超時在調用下載頁面之前等待5秒...更多的形式,可能不是必需的。 – Jon 2010-09-28 20:06:21
這個文件有多大? – JAL 2010-09-28 23:06:51