好的,我希望我的用户能够下载带有用户名的.txt
文件。
我到处检查过,到目前为止我找不到我想要的东西,或者甚至可能找到它。
为了举例说明我正在尝试做的事情,这是我的代码:
<button type="button">Download All Your Keys On A .txt
<?php
$file = 'logs/$session->username.txt';
if(!file_exists($file)) die("I'm sorry, the file doesn't seem to exist.");
$type = filetype($file); // Get a date and timestamp $today = date("F j, Y, g:i a"); $time = time(); // Send file headers header("Content-type: $type"); header("Content-Disposition: attachment;filename=$filename");
header("Content-Transfer-Encoding: binary");
header('Pragma: no-cache');
header('Expires: 0'); // Send the file contents.
set_time_limit(0);
readfile($file);
?>
</button>
我正在尝试这样做,以便当您单击该按钮时,它会强制下载配置为的.txt文件:
$file = 'logs/$session->username.txt';
很抱歉,如果这令人困惑和混乱,但我无法提出其他方式。
提前致谢!
答案 0 :(得分:12)
为什么不将此代码放在单独的文件中,比如download.php
:
<?php
$file = "logs/{$session->username}.txt";
if(!file_exists($file)) die("I'm sorry, the file doesn't seem to exist.");
$type = filetype($file);
// Get a date and timestamp
$today = date("F j, Y, g:i a");
$time = time();
// Send file headers
header("Content-type: $type");
header("Content-Disposition: attachment;filename={$session->username}.txt");
header("Content-Transfer-Encoding: binary");
header('Pragma: no-cache');
header('Expires: 0');
// Send the file contents.
set_time_limit(0);
readfile($file);
?>
请注意,在'
内使用变量时,必须将引号更改为双引号。因此,要扩展变量,请将第一行更改为:
$file = "logs/{$session->username}.txt";
我在此考虑$session->username
,作为您尝试引用的变量。
在HTML中有这个:
<button type="button" onclick="location.href='download.php'">Download All Your Keys On A .txt</button>
当您单击此按钮时,它会重定向到download.php
,从而启动txt文件的下载。就如此容易。但这需要你有两个文件。我不明白这里需要一个按钮。为什么不使用像这样的简单链接?
<a href="download.php">Download All Your Keys On A .txt</a>
如果需要,可以使用CSS设置样式。