ftp_get():传输失败

时间:2015-04-16 22:27:45

标签: php

这是我正在使用的代码

    <?php
// connect and login to FTP server
$ftp_server = "ftp_server";

$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
ftp_pasv($ftp_conn, TRUE);
ftp_set_option($ftp_conn, FTP_TIMEOUT_SEC, 2800);
$ftp_username="ftp_username";
$ftp_userpass="ftp_userpass";

$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);

$local_file = "local_file";
$server_file = "server_file";


if (ftp_get($ftp_conn, $local_file, $server_file, FTP_BINARY))
  {
  echo "Successfully written to ".$local_file;
  }
else
  {
  echo "Error downloading ".$server_file;
  }

// close connection
ftp_close($ftp_conn);

我总是得到同样的错误 -

“警告:ftp_get():第33行的myfile.php传输失败 下载server_file“

时出错

我试着看看我试图得到的文件是否是正确的,所以我用过 这段代码 -

$res = ftp_size($ftp_conn, $server_file);

if ($res != -1) {
    echo "size of $server_file is $res bytes";
} else {
    echo "couldn't get the size";
}

我得到文件大小,因此文件存在。该文件大约是11MB,因此该文件的大小不应该是一个问题。

我添加了一行:

ftp_pasv($ftp_conn, TRUE);
ftp_set_option($ftp_conn, FTP_TIMEOUT_SEC, 2800);

在网络上搜索解决方案后,无论是否有这些行,结果都相同......

有什么想法吗?

Cheerz

1 个答案:

答案 0 :(得分:0)

您需要在ftp_pasv()之后拨打ftp_login(),而不是之前。检查函数调用的返回值,看它是否成功。