【发布时间】:2013-02-13 22:50:34
【问题描述】:
我似乎无法弄清楚这一点,我知道这很简单。我正在构建一个非常基本的内容管理系统的后端。对于这个特定的部分,我只是想创建一个 PHP 链接,允许下载文件(客户的 CV)。
我的问题:
当点击下载文件的链接时,浏览器不会提示您选择一个本地目录来保存文件 - 它只是在文档内容之前和之后显示文件和一堆符号(我假设这是文件的打开和关闭 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;
}
}
?>
非常感谢,
乔希
【问题讨论】:
-
我对 PHP 也很陌生,如果您有任何其他标记建议,请告诉我!谢谢
-
几件事 - 您可以尝试使用
CASE开关而不是多个IF语句。此外,文件扩展名应在if ($file_extension == pdf)部分的引号中。 -
@kkhugs 我添加了
CASE,但是对于扩展名周围的引号,您是指它正在检查的变量周围吗?还是围绕IF检查的静态值?
标签: php content-management-system download