0

我正在尝试创建一个界面,用户可以在其中登录并从 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 还很陌生,所以任何帮助都会很棒!谢谢。

4

2 回答 2

0

$_SESSION['download'] 的值;始终是 FTP 连接上的最后一个文件。由于您通过 GET 抛出路径,因此您应该改用它。

改变

$value = $_SESSION['download'];

$value = $_GET['download'];
于 2013-06-26T05:28:23.483 回答
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'];
于 2013-06-26T05:31:42.740 回答