0

好的,所以我正在尝试在我的网站上创建一个下载链接生成器。我的意思是这样的:

    • 用户写入“列表 X”,站点列出给定目录中的每个文件
    • 每个文件都有一个数字(从 0 到 n)
    • 当用户键入:例如“下载 5”
    • 它将用户重定向到下载脚本
    • 该脚本使用户可以弹出一个下载“框”

我首先想到我可以用每个文件名创建一个数组,然后将该数组中的位置用于“下载 X”命令。

因此,当他将用户重定向到下载脚本时,具有用户想要下载的文件名称的变量被“POST”到下载脚本,并且标题随之改变。

所以这是我的两个问题:

1) - 你如何根据用户输入更改下载脚本?2) - 输入字段已用于“$_SERVER['PHP_SELF']”的其他目的,所以我不知道如何在没有表单的情况下“发布”变量?

这是我的简单下载脚本:

<?php
header('Content-disposition: attachment; filename=huge_document.pdf');
header('Content-type: application/pdf');
readfile('huge_document.pdf');
?>

提前致谢 !

4

1 回答 1

1

不要让他们输入任何内容。让每个下载都成为他们点击的链接。在链接的 URL 中,您将有一个带有下载唯一标识符的查询字符串。像这样的东西:

<a href="/path/to/downloadscript.php?id=5">Down file #6</a>

downloadscript.php然后将从$_GET超全局获取 ID ,您可以从那里开始(使用示例中提到的数组):

<?php
$download_id = (int) $_GET['id']; // 5
$files = array(
    file1.pdf,
    file2.pdf,
    file3.pdf,
    file4.pdf,
    file5.pdf,
    file6.pdf  // This is the file they'll get
);

$filename = $files[$download_id];

// get the file name from your array or database
header('Content-disposition: attachment; ' . filename=$filename);
header('Content-type: application/pdf');
readfile($filename);
?>
于 2012-04-09T23:52:18.443 回答