1

我正在为一个站点开发一个简单的文档管理系统 - 用户可以上传大约 20 种不同的文件类型,文档被重命名,然后存储在 www 上方的文件夹中,在文档表中创建一个条目以捕获由用户,然后通过另一个 php 文件检索该项目,因此文件的存储位置对用户隐藏。

当用户使用简单的 a href 点击下载文件时,它会调用,例如“view.php?doc=image.jpg” - 当他们这样做时,当前文件会在浏览器中打开,因此 jpg 会打开一个带有页面的窗口像字符等的“翅膀”。

我希望能够强制打开/保存对话框,以便用户决定要做什么,并且我的应用程序不会尝试在浏览器窗口中打开上述结果。

从以前的帖子中,我发现我知道我无法在“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"; 
} 
;
4

1 回答 1

1

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

或者,要简单地强制下载,这:

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

应该这样做。

于 2012-05-13T12:07:30.730 回答