0
    $local = 'WP_Inv.csv';
    $remote = 'WP_Inv.csv';
    $user = "User861";
    $pass = "topsecret";
    $host = 'ftp.server.com';
    $port = '21';
    $timeout = '90';
    $type = FTP_ASCII;

    $conn_id = ftp_connect($host,$port,$timeout);

    $login = ftp_login($conn_id, $user, $pass);

             ftp_put($conn_id, $remote, $local, $type);

シェルから実行すると、次のエラーが返されます。

最後の行にエラーが表示されています。

PHP 警告: ftp_put(): サーバーは引数を受け入れることができません。

(はい、コードの後半で接続を閉じます)

4

1 に答える 1

4

パッシブモードをオンにしてみましたか?私は過去に同じ問題を抱えていました.phpコードを実行しているマシンとftpサーバーがアクティブな接続でハンドシェイクできなかったためです。

http://php.net/manual/en/function.ftp-pasv.php

bool ftp_pasv ( resource $ftp_stream , bool $pasv )
ftp_pasv() turns on or off passive mode. In passive mode, data connections are initiated by the client, rather than by the server. It may be needed if the client is behind firewall.

Please note that ftp_pasv() can only be called after a successfull login or otherwise it will fail.
于 2013-05-31T20:43:37.647 に答える