【发布时间】:2014-01-28 00:11:50
【问题描述】:
我已经搜索了很长时间,但没有看到可以解决我的问题的东西。我正在处理一个显示文件列表的页面,当点击时,用户将被允许下载该文件。文件路径存储在 MySQL 中以供下载。
目前我正在使用带有 SQL 查询的 while 循环来检索和显示(回显)文件。
- logID = MySQL 中的自动增量 ID
- logDate = 日期时间值
-
fileLink = MySQL 中存储的文件路径(例如 C:\www\wamp\file.txt)
while ($row = mysql_fetch_array($result)) { $ID =$row['logID']; $date =$row['logDate']; $file =$row['fileLink']; echo $ID, ' '; echo $date, '<br/>'; }
所以现在屏幕上显示如下,
1 2014-01-25 09:33:27
2 2014-01-26 09:37:28
3 2014-01-27 09:38:09
我想将“echo $date”的日期和时间变成一个超链接(我对此有问题),这样用户就可以点击下载文件。我有一个文件下载代码,
<?php
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>
问题是当此下载代码在页面上时,页面加载时立即出现下载框,并且仅提供下载“2014-01-27”文件的选项,该文件是期间最后检索到的项目SQL while 循环。
我已经读到下载代码应该在另一个 .php 文件上,当需要它时会被调用,但我是 PHP 新手,不知道如何去做。
主要是我的问题,
- 如何使用 onclick 事件将回显项设为超链接以触发下载。
- 如何将文件路径绑定到相应的回显项,因为现在 $file 将存储由于 while 循环而导致的最后一条记录的文件路径。
- 如果上述情况可行,并且下载代码在另一个 .php 文件上,我如何将相应的 $file 变量值传递给该 .php 文件以使该方法起作用。
提前感谢您并感谢您提供的任何帮助。
【问题讨论】: