使用符号链接下载PHP文件

时间:2010-12-04 14:25:38

标签: php download symlink

我有一堆可以通过访问的.tgz文件。符号链接。当我单击指向符号链接的页面上的href时,它会下载一个相当奇怪的文件。下载的文件具有符号链接的名称,打开存档后,我得到(据我所知)二进制文件,该文件可能是也可能不是静态文件的内容。

我想做的是让PHP显示文件下载对话框,该对话框提供由符号链接而不是实际符号链接链接的文件。这可能吗?

2 个答案:

答案 0 :(得分:3)

为了给您一个确切的答案,我需要了解更多有关您如何提供文件的信息。 为什么PHP甚至涉及?不是网络服务器提供的文件?你是重定向到它还是从你打印它的php脚本中读入内存?

但我可以告诉你。

在大多数情况下,PHP会将符号链接作为文件处理,并且不会无条件地为链接后面的文件提供服务。

有php函数is_link()来检查资源指针是否是链接, 有一个函数readlink()来提供链接后面的文件,还有linkinfo(),它提供了有关链接的信息。

但是很可能你需要明确地允许Apache或你使用的任何服务器遵循符号链接,这些符号链接可以是apy中的Options FollowSymLinks指令。

答案 1 :(得分:1)

PHP有readlink,允许您获取其定位/链接的路径 但是,请认为您的问题与apache重写或绝对路径(再次)相关

PS:你的apache mime支持tgz扩展吗?

参考:http://www.w3schools.com/media/media_mimeref.asp