【发布时间】:2012-08-05 22:56:00
【问题描述】:
我正在尝试创建下载按钮,以便用户可以通过单击按钮下载 pdf 文件。我有这个:
<?php
session_start(); // Alltid överst på sidan
if(!isset($_SESSION['sess_id']) OR $_SESSION['sess_id'] < 1){
die("Skapa ett konto som investerare för att enkelt få tillgång till affärsplaner!");
}else if(is_numeric($_SESSION['sess_id'])) {
/* kolla om användaren försöker ange filer i en annan mapp */
if(substr_count($_GET['file'], "/") > 0){
die("Invalid path"); }
/* skapa fullständig sökväg till filen */
$file = '/server/php/files/' . $_GET['file'];
/* kolla om filen finns */
if(!file_exists($file))
{
die("Invalid filename");
}
它给了我一个“无效的文件名”消息..
然而,
当我echo $file; 并将路径复制到我的浏览器(前面的+localhost)时,它会为我提供我正在寻找的下载对话框。关于我做错了什么有什么想法吗?
echo $file的输出
/server/php/files/roibay-business-plan.pdf
而“server”是我根文件夹中的一个文件夹。
【问题讨论】:
-
仅供参考,像这样使用 $_GET 而不过滤它可能会导致安全问题。 en.wikipedia.org/wiki/Null_character
-
我有一些过滤代码 :)(我会添加它以便它在那里),但是谢谢!
-
能否将输出发布到
echo $file命令? -
您是否在任何地方的服务器结构中使用符号链接?
file_exists和符号链接不能很好地协同工作。 -
你可以试试这个吗?
file_exists($_SERVER{'DOCUMENT_ROOT'} . "/php/files/roibay-business-plan.pdf"))假设/server是您的根。
标签: php pdf download file-exists