我正在尝试创建一个用户可以登录并从ftp服务器下载文件的界面。我的下载链接出现问题,即使按下第一个文件,它也只会下载列表中的最后一个文件。
这是我的代码:
$a = ftp_nlist($conn_id, "/web/images");
foreach($a as $value){
if ($i <= 1) {
$i ++;
}
else {
echo "<br>";
echo '<ul><li>'."$value".'</li>';
echo '<li><a href="download.php?="' . $value . '>Download</a></li>';
echo '<li><a href="' . "$value" . '"' . 'target="_blank">Preview</a></li></ul>';
$_SESSION['download'] = $value;
}
}
?>
这是download.php:
<?php
session_start();
$value = $_SESSION['download'];
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($value));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($value));
?>
正如你所看到的,我对php很新,所以任何帮助都会很棒! 感谢。
答案 0 :(得分:0)
$ _SESSION ['download']的值;始终是FTP连接上的最后一个文件。 由于你是通过GET抛出路径,所以你应该使用它。
更改
$value = $_SESSION['download'];
要
$value = $_GET['download'];
答案 1 :(得分:0)
试试这个: -
echo '<li><a href="download.php?="' . $value . '>Download</a></li>';
将此行更改为此
echo '<li><a href="download.php?download="' . $value . '>Download</a></li>';
并在download.php中获取下载值
$value = $_GET['download'];