ftp_put():打开数据通道以将文件上传到“ /xxx.txt”的服务器

时间:2018-09-25 13:00:35

标签: php ftp

我正在使用PHP FTP将文件上传到FTP。将文件放到服务器上时,它会抛出错误。

我做了什么:

    $ftp_conn = ftp_connect(SAP_SERVER_HOST, SAP_SERVER_PORT, 60);
    if (!ftp_login($ftp_conn, SAP_SERVER_USER, SAP_SERVER_PASSWORD)) {
        echo 'not connected<br/>';
    } else {
        $localfile = '/abc/txt/15375127769260.txt';
        $serverfile = '/folder/15375127769260.txt';
        // echo ftp_pwd($ftp_conn);
        if (ftp_put($ftp_conn, $serverfile, $localfile, FTP_BINARY)) {
            echo "Successfully uploaded $localfile.";
        } else {
            echo "Error uploading $localfile.";
        }
        // close connection
        ftp_close($ftp_conn);
    }

建议我,这段代码中我想念的。

2 个答案:

答案 0 :(得分:0)

您使用正确的文件夹和端口吗?

$ftp_conn = ftp_connect(SAP_SERVER_HOST, SAP_SERVER_PORT, 60);

它应该是端口21 在本地文件中,您必须获取realpath()函数的文件的真实路径 对于远程服务器,路径基于ftp基本文件夹

看看真实路径http://php.net/manual/pt_BR/function.realpath.php

答案 1 :(得分:0)

对于任何遇到此问题的人: 添加 ftp_pasv($conn_id, true);

后,我的文件已正确发送

注意一定要加在ftp_login()之后。

ftp-pasv on php.net