下面的代码强制浏览器提示保存/打开文件 ( https://kb.wisc.edu/images/group27/13334/open-prompt.PNG ),即使它是图像或 pdf 文件。
我希望像往常一样打开图像,在浏览器中显示 pdf 文件。当然,浏览器不支持的其他文件(如 zip、rar、doc、xls 等)将触发保存文件对话框。
编辑:我的意图不是阻止客户端保存文件,当然他们可以保存它,这是不可能的。我想将图像作为 PHP 文件提供,例如 main.php?file=randomcode (存储在数据库中),而不是 /images/somefilename.jpg 。我的代码强制客户端下载它,但我想显示它。
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"" . $filename . "." . $fileinfo["file_extension"] . "\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($file));
$fp = fopen($file, "r");
if ($fp) {
while (!feof($fp)) {
$cur_data = fread($fp, 1024);
echo $cur_data;
}
} else {
echo "Error: Could not the read file.";
}