我正在为一个站点开发一个简单的文档管理系统 - 用户可以上传大约20种不同的文件类型,文档被重命名,然后存储在www上面的文件夹中,在docs表中创建一个条目来捕获元数据由用户输入,然后通过另一个php文件检索该项目,因此文件的存储位置对用户是隐藏的。
当用户点击使用简单的href来下载文件时,它会调用,例如“view.php?doc = image.jpg” - 当他们这样做时,文件会在浏览器中打开,以便jpg打开一个窗口有“wingdings”页面,如人物等。
我希望能够强制打开/保存对话框,以便用户决定做什么,我的应用程序不会尝试在浏览器窗口中打开以上结果。
从之前的帖子中我发现我知道我无法在“a href”标签中传递mime类型,那么我还有其他选择吗?我可以将标题信息放入下面的view.php文件中,例如?
$_file = $_GET['doc'];
$filename = './dir/'.$_file;
if (file_exists($filename)) {
echo file_get_contents('./dir/'.$_file);
} else {
echo "The file $_file does not exist";
}
;
答案 0 :(得分:1)
您可以使用get_headers()获取所需文件的MIME类型标头,然后使用header()将这些标头输出到您要显示的文件中。
或者,只需强行下载,即:
header('Content-Description: File Transfer');
header("Content-type: application/octet-stream");
应该这样做。