如果我們僅使用<a href='文件路徑/文件名'>下載</a>或者js的window.location = '文件路徑/文件名',且文件類型為浏覽器能識別的,那麼浏覽器將會直接打開文件而不是彈出下載框下載文件,比如'.txt','.conf','.bin'文件等。當然js的document.execCommand('SaveAs','mycodes.txt')(第二個參數為要保存為的文件名)也能實現下載,但它兼容性不好,firefox下無效。這時如果你的環境支持php語言,那麼你可以用header()來實現文件下載:
先看簡單實例:
同目錄下有兩個文件index.php,test.php與供下載文件adam.txt:
test.php文件內容:
<?php
$filename = $filename = 'adam.txt';
echo "<a href='index.php?filename=".$filename."'>下載</a>";
?>
index.php文件內容:
<?php
$filename = $_REQUEST['filename'];
header("Content-Type:text/plain");
header('Content-Disposition:attachment;filename='.$filename);
header('Content-Transfer-Encodeing: binary');
readfile($filename);
?>
當你打開test.php並單擊下載時將實現對adam.txt文件的下載。
同理,我們也可以實現對.jpg,.zip,.rar,.pdf等文件實現下載,這時只需把index.php中的header("Content-Type:text/plain")稍做修改,比如下面所示
header("Content-Type:application/zip");//zip或者rar
header("Content-Type:application/pdf");//pdf
header("Content-Type:image/jpeg");//圖片
header("Content-Type:audio/mpeg");