1

Windows 共有ホスティングで php ftp 関数を使用して、外部 FTP サーバーからいくつかのファイルをリストしようとしていますが、いくつかの問題があります。

最初に、ajaxplorer や net2ftp などの Web アプリケーションをいくつか試してみましたが、イライラして、テスト用の非常に基本的なスクリプトを作成することにしました。

<?php   
$ftp_server = "alinuxftpserver";
$ftp_user = "user";
$ftp_pass = "pass";

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

// change temp folder (windows)
putenv("TMP=D://inetpub//webs//domain//net2ftp//tmp");
echo getenv('TMP'); 

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

if(ftp_pasv( $conn_id, true )) 
      echo "Passive mode, it worked<br/>"; 
    else 
      echo "Passive mode, it didn't work<br/>";

$contents = ftp_rawlist($conn_id, ".");
var_dump($contents);

ftp_close($conn_id);  

die;

?>

私のローカルホスト (Linux) では配列を返しますが、ホストしている Windows では次のように返します。

Warning: ftp_rawlist() [function.ftp-rawlist]: php_connect_nonb() failed: No such file or directory (2) in D:\inetpub\webs\domain\ftp.php on line 26
bool(false)

理解できません..ディレクトリは外部ftpサーバーの「/」である必要があり、もちろんいくつかのファイルとフォルダーがあります(2つのフォルダーと1つのファイル)..実際、私のMAMPインストールではうまく機能します。

ホスティング担当者から、サーバー構成は問題ないとのことでした。

4

4 に答える 4

3

ftp_pasv($ conn_id、true);を使用します。一部のFTP接続はパッシブモードでのみ機能します

于 2013-03-20T09:26:35.010 に答える
0

FTP サーバーのログを確認します。私の場合、pasv_address が間違った IP アドレスに設定されていました。

于 2012-08-07T10:08:03.260 に答える
0

$contents = ftp_rawlist($conn_id, "/"); 100%確信はありませんが、代わりに使用する必要があると思います$contents = ftp_rawlist($conn_id, ".");

于 2012-01-30T14:39:46.793 に答える