文件打开/另存为对话框和mime类型

时间:2012-05-13 11:57:22

标签: php

我正在为一个站点开发一个简单的文档管理系统 - 用户可以上传大约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"; 
} 
;

1 个答案:

答案 0 :(得分:1)

您可以使用get_headers()获取所需文件的MIME类型标头,然后使用header()将这些标头输出到您要显示的文件中。

或者,只需强行下载,即:

header('Content-Description: File Transfer');
header("Content-type: application/octet-stream");

应该这样做。