我想创建一个显示
之类消息的PHP页面Your download will begin shortly.
If it does not start, please click here to restart the download
,即主要网站上存在的相同类型的网页。
它会像这样工作:
<a href="download.php?file=abc.zip">Click here</a>
当用户点击该链接时,他会被导致download.php显示该消息,然后提供该文件以供下载。
我该怎么做?
非常感谢!
答案 0 :(得分:2)
链接需要执行以下两项操作之一:
让浏览器“独立”开始下载的一种方法是使用META REFRESH标记。
另一种方法是使用JavaScript,例如(来自Mozilla的Firefox下载页面):
function downloadURL() {
// Only start the download if we're not in IE.
if (download_url.length != 0 && navigator.appVersion.indexOf('MSIE') == -1) {
// 5. automatically start the download of the file at the constructed download.mozilla.org URL
window.location = download_url;
}
}
// If we're in Safari, call via setTimeout() otherwise use onload.
if ( navigator.appVersion.indexOf('Safari') != -1 ) {
window.setTimeout(downloadURL, 2500);
} else {
window.onload = downloadURL;
}
答案 1 :(得分:2)
<?php
// download.php
$url = 'http://yourdomain/actual/download?link=file.zip'; // build file URL, from your $_POST['file'] most likely
?>
<html>
<head>
<!-- 5 seconds -->
<meta http-equiv="Refresh" content="5; url=<?php echo $url;?>" />
</head>
<body>
Download will start shortly.. or <a href="<?php echo $url;?>">click here</a>
</body>
</html>
答案 2 :(得分:0)
如果您想确保下载文件(而不是浏览器或浏览器插件中显示),您可以设置Content-Disposition
HTTP标头。例如,要强制下载PDF而不是在浏览器插件中打开:
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="foo.pdf"');
readfile('foo.pdf');