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

Webpage: List remote FTP files via links that download them

本文关键字:文件 链接 FTP 下载 网页      更新时间:2023-09-26

我已经搜索了几个小时,尝试了很多组合,但迄今为止都没有成功。我在远程FTP服务器上有一个文件夹,我希望将其内容显示为网页上的链接。单击链接后,我希望它将该特定文件下载到用户的计算机上。我花了几个小时尝试jQuery/ajax组合,其中混合了php和html。如果有任何帮助,我将不胜感激!

<?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还不熟悉,所以非常感谢您的帮助!

提前感谢您抽出时间。

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

解决方案:

$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中的文件名称中没有空格!

资源:

  • 堆栈溢出应答-hakre
  • 堆栈溢出应答-不满的山羊