当前位置: 首页 > 知识库问答 >
问题:

如何使用PHP在FTP上下载最新的文件?

空英达
2023-03-14

在FTP服务器上有一些文件。此服务器上的任何时间都在上传新文件。我想下载最后一个文件。如何从此服务器获取上次上传的文件?所有文件都具有不同的名称。

我使用以下脚本下载了一个文件。

$conn = ftp_connect("ftp.testftp.com") or die("Could not connect");
ftp_login($conn,"user","pass");
ftp_get($conn,"target.txt","source.txt",FTP_ASCII);
ftp_close($conn);

提前感谢!!!

共有2个答案

龚苏燕
2023-03-14
ftp_rawlist($conn);

提取最新文件名并获取它。

颜均
2023-03-14

无法确定哪个文件是最近的,因为没有“上传时间”属性。您没有过多提及FTP服务器,但如果您对上传有一定程度的管理,您可以确保在上传时设置最后修改的时间。这最终是否有效取决于您的FTP服务器,可能还有客户端。

假设您的修改时间与上载时间相等,您可以执行以下操作:

// connect
$conn = ftp_connect('ftp.addr.com');
ftp_login($conn, 'user', 'pass');

// get list of files on given path
$files = ftp_nlist($conn, '');

$mostRecent = array(
    'time' => 0,
    'file' => null
);

foreach ($files as $file) {
    // get the last modified time for the file
    $time = ftp_mdtm($conn, $file);

    if ($time > $mostRecent['time']) {
        // this file is the most recent so far
        $mostRecent['time'] = $time;
        $mostRecent['file'] = $file;
    }
}

ftp_get($conn, "target.txt", $mostRecent['file'], FTP_ASCII);
ftp_close($conn);
 类似资料:
  • 我必须从FTP服务器下载最新文件。我知道如何从我的计算机下载最新文件,但我不知道如何从FTP服务器下载。 如何从FTP服务器下载最新文件? 这是我从电脑上下载最新文件的程序 好的,使用此代码我知道最后一个文件的日期,但我如何知道这个文件的名称?????????

  • 我想实现一个SSIS作业,该作业能够下载位于远程Hadoop集群上的大型CSV文件。当然,在Hadoop系统上只有一个常规FTP服务器不会公开HDFS文件,因为它使用本地文件系统。 我想知道是否有一个FTP服务器实现位于HDFS之上。我更喜欢这种方法,而不是必须将文件从HDFS复制到本地FS,然后让FTP服务器提供服务,因为我需要分配更多的存储空间。

  • 我正在IIS服务器上使用网站面板。我想使用ftp上载文件 我使用了以下代码: 这段代码运行没有错误。当我使用网站面板的文件管理器时,一个文件创建了“Name.ext”,但这个文件大小是0 KB。为什么?我有什么问题?! 我确信windows防火墙允许我这么做。 更新:我正在使用UploadFileTask和UploadFile(unasync)进行操作,但结果与async相同:(

  • 我想用php从我的服务器下载文件。我搜索了谷歌,在这里找到了答案。这个答案表明我必须为此编写这些代码。 但我能做到这一点,只需这两行: 那么,我为什么还要像上面的代码那样多写几行呢?

  • 本文向大家介绍php使用curl实现ftp文件下载功能,包括了php使用curl实现ftp文件下载功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了php实现ftp文件下载功能,供大家参考,具体内容如下 不知道为什么用正常的ftp_get函数下载文件速度特别慢,但是用ftp的客户端下载很快,所以换了curl的下载方式,速度正常 测试下载小文件是正常的,但是如果网速很慢,下载大文件时

  • 我有我的网站在和我想下载一些文件从另一个域但没有得到下载和显示302移动临时错误。我使用cURL代码。