使用 PHP 从 FTP 下载文件时出错

使用 PHP 从 FTP 下载文件时出错

我正在尝试使用 PHP 从 FTP 下载文件。我在 2 台服务器上测试了该脚本,它运行良好。但它在我需要运行此脚本的服务器上不起作用。任何帮助都将不胜感激。

我收到了这个错误。

警告:ftp_nb_fget():类型设置为 I。位于 /home/sites/example.com/public_html/path-to-file/download-file.php 第 18 行

<?php
    ini_set("display_errors", "1");
    error_reporting(E_ALL);

    $ftp_server = "server_address";
    $ftp_username = "username";
    $ftp_userpass = "password";

    $ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
    $login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);

    $src_file = 'source_file';  //File to write
    $dest_file = 'server_file'; //File to download

    $data_file = fopen($src_file, 'w');

    // Initate the download
    $ret = ftp_nb_fget($ftp_conn, $data_file, $dest_file, FTP_BINARY);

    while ($ret == FTP_MOREDATA) {

       // Do whatever you want
       echo ".";

       // Continue downloading...
       $ret = ftp_nb_continue($ftp_conn);
    }
    if ($ret != FTP_FINISHED) {
       echo "There was an error downloading the file...";
       exit(1);
    }
    ?>

我也尝试过使用 ftp_get 而不是 ftp_nb_fget,但出现与上述相同的错误。

答案1

基本上可能发生的情况是 - 您位于防火墙后面,但尝试使用活动 ftp 会话(您确实在这样做)。
这可以解释为什么您的 ftp 会话已正确建立,但尝试获取文件失败。

看看这里如何使用被动 ftp

相关内容