网页:通过下载它们的链接列出远程FTP文件

时间:2015-02-10 05:22:50

标签: javascript php jquery ajax ftp

我一直在寻找好几个小时并尝试了很多种组合,但到目前为止我的尝试都没有成功。我在远程FTP服务器上有一个文件夹,其内容我希望显示为网页上的链接。点击链接后,我希望它将该特定文件下载到用户的计算机上。我花了好几个小时尝试使用php和html混合的jQuery / ajax组合。任何帮助都会非常感激!

<?php
    $ftp_server = "host info here";
    $ftp_user = "user info here";
    $ftp_pass = "pw here";

    // set up a connection or die
    $conn_id2 = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); 
    // try to login
    ftp_login($conn_id2, $ftp_user, $ftp_pass);
    ftp_pasv($conn_id2, true);

    $filelist = ftp_nlist($conn_id2, "/folder/path/here");
    foreach ($filelist as $file)
    {
        echo $file;
        echo "<br />";
    }
    ftp_close($conn_id2);
?>

这是尝试链接文件以供下载之前的代码。这会成功列出文件夹中的所有文件。我不希望每次加载页面时都将所有文件下载到本地服务器,因为它们是大文件,并且有很多文件。我只想通过点击文件名来下载它们。

我尝试的总体思路是将链接文本传递给一个可以再次打开FTP连接并下载指定文件的函数。单击链接将副本直接下载到客户端的计算机上会很棒,但如果我需要先下载到本地服务器,这是一个选项,那么我只需在页面上清除它负荷。

我尝试过的内容:我花了数小时谷歌搜索jQuery / ajax脚本,在单独的文件中尝试函数并将参数传递给它们等等。到目前为止,没有任何工作。虽然我在几种编码语言方面经验丰富,但我对php / js更新,所以非常感谢任何帮助!

提前感谢您的时间。

1 个答案:

答案 0 :(得分:0)

我知道这是一个老线程,但我最近不得不做同样的事情。

<强>解决方案:

$url = "ftp://ftp.bla.com";
// connect and login to FTP server
$ftp = ftp_connect("ftp.bla.com");
if (!$ftp) die('could not connect.');

// login
$login = ftp_login($ftp, "anonymous", "");
if (!$login) die('could not login.');

// enter passive mode
$passsive = ftp_pasv($ftp, true);
if (!$passsive ) die('could not enable passive mode.');

// get listing
$listing = ftp_nlist($ftp, "/path/to/dir");

foreach($listing as $value){
    echo "<a href='$url$value'>", substr($value, strrpos($value, '\\') + 1) ,"</a><br>";
}

这会将文件名显示为链接,如果单击它们,它们将单独下载。

**注意:我的ftp中的文件名称中没有空格!

资源: