我似乎无法弄清楚这一点,我知道这很简单。我正在建立一个非常基本的内容管理系统的后端。对于这个特定的部分,我只是试图创建一个允许下载文件(客户的简历)的PHP链接。强制下载只显示在浏览器中,不会提示下载
我的问题:
当点击下载文件的链接,而不是浏览器提示您选择一个本地目录的文件保存到 - 它只是显示文件和一堆符号在文档内容之前和之后(我假设这是文件的开启和关闭应用程序解密的exif数据)。
我怎么能强迫浏览器提示用户“另存为...”框?
<?php
require("connect.php");
$query = "SELECT * FROM kb_info LIMIT 1";
$result = mysql_query($query, $link);
while ($row = mysql_fetch_array($result)) {
$file_extension = end(explode(".", $row["extension"]));
if ($file_extension == doc) {
header('Content-disposition: attachment; filename='.$row["extension"]);
header('Content-type: application/doc');
header ("Content-Length: ".filesize($row["extension"]));
readfile($row["extension"]);
exit;
}
if ($file_extension == docx) {
header('Content-disposition: attachment; filename='.$row["extension"]);
header('Content-type: application/docx');
header ("Content-Length: ".filesize($row["extension"]));
readfile($row["extension"]);
exit;
}
if ($file_extension == pdf) {
header('Content-disposition: attachment; filename='.$row["extension"]);
header('Content-type: application/pdf');
header ("Content-Length: ".filesize($row["extension"]));
readfile($row["extension"]);
exit;
}
}
?>
非常感谢,
Joshie
我也很新PHP,如果你有任何其他的标记建议让我知道!谢谢 – j0sh1e 2013-02-27 22:34:19
夫妇的事情 - 你可以尝试一个'CASE'开关,而不是多个'IF'语句。另外,文件扩展名应该在'if($ file_extension == pdf)'部分引用。 – 2013-02-27 22:43:16
@kkhugs我添加了'CASE',但是对于扩展周围的引号,你的意思是围绕它正在检查的变量吗?或者围绕着“IF”正在检查的静态值? – j0sh1e 2013-02-28 01:51:36