您需要通過使用Ajax來做到這一點,即
首先創建一個文件,你可以撥打一旦鏈接被點擊,在這個例子中,也叫它的download.php
然後在文件中添加一個調用你的函數....
<?
// execute function to get files
$zip_file = create_zip();
// get the full path to zip file
$full_zip_path = '/path/to/zip/file'.$zip_file;
// You may need to do more here depending on how far your create zip function goes
// if you want it to force the download you can then do this
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: octet/stream");
header("Content-Disposition: attachment; filename=".$zip_file.";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($full_zip_path));
readfile($full_zip_path);
exit();
?>
然後一類添加到您的標籤,因爲這樣...
<a href="<!--Run create_zip function-->" class="download-zip">Download all files</a>
然後你想要的是一些javascript調用在後臺加載php文件,基本上添加這個在你的頁腳/頭(這取決於你的腳本)的地方。
<script>
$(function() {
$("a.download-zip").click(function() {
window.location.href = "/path/to/php/file/download.php";
return false;
});
});
</script>
然後,這將在後臺加載文件,這將依次強制下載創建的zip文件。由於沒有看到你的create_zip函數到底有多遠,上面的一些可能會稍微有點出乎意料,但它應該設置你正確的路徑。
你必須爲此使用AJAX。 – AmazingDreams 2013-02-22 15:20:05
直接不可能的HTML運行在您的客戶端瀏覽器php運行在您的服務器上 - 您將需要創建將生成zip的「頁面」。你可以使用ajax在場景後面調用,但你也可以直接使用target =「_ blank」 – drk 2013-02-22 15:25:45