ftp_get在获取文件时出错

时间:2011-05-20 06:35:47

标签: php ftp

我尝试使用ftp_get

从远程服务器获取csv文件
$conn_id = ftp_connect($ftp_server);
ftp_pasv($conn_id, TRUE);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

$okk=0;
// try to download $server_file and save to $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY))  (line 31)
{
        $okk=1;
}

但是它给出了以下错误

  

警告:ftp_get():打开/abc/abc.csv(198528字节)的BINARY模式数据连接。在第31行的/home/a/b/c/cm_data/d.php中

我尝试将其更改为ascii模式,然后它也给出了错误

  

警告:ftp_get():打开/abc/abc.csv(198528字节)的ASCII模式数据连接。在第31行的/home/a/b/c/cm_data/d.php中

我也尝试过使用ftp_pasv($conn_id, TRUE);,但仍然会出错。

有什么问题请帮忙!!

2 个答案:

答案 0 :(得分:4)

在 ftp_login之后,

需要在中调用ftp_pasv!

答案 1 :(得分:0)

您似乎不会处理来自ftp_connectftp_login的错误案例。

请尝试以下代码,看看是否有错误:

<?php

    $ftp_server = $ftp_server;
    $ftp_user = $ftp_user_name;
    $ftp_pass = $ftp_user_pass;

    // set up a connection or die
    $conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); 

    // try to login
    if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
        echo "Connected as $ftp_user@$ftp_server\n";
        if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
            $okk=1;
        }
    } else {
        echo "Couldn't connect as $ftp_user\n";
    }

    // close the connection
    ftp_close($conn_id);  

?>