電子書籍の厳選無料作品が豊富!

いつもお世話になっております。

PHP PEAR Net_FTPを利用してファイルをputするサンプルプログラムを作ろうと
以下のようなサンプルを作りました。

<?php
require_once("Net/FTP.php");

$ftp =& new Net_FTP();
var_dump($ftp->connect("ipaddress","21"));
//var_dump($ftp->login("",""));
//var_dump($ftp->setPassive());
//var_dump($ftp->cd("/"));
//echo $ftp->pwd();
//echo "\r\n";
var_dump($ftp->put("/home/a/aaa.txt","aaa.txt",false,FTP_BINARY));

// 接続の切断
$ftp->disconnect();

?>

しかし、

File '/home/a/aaa.txt' could not be uploaded to '/aaa.txt'

となってしまい、アップロードできません。


ネットのサンプルを見ると、connectの後、loginするのが通例なのですが、
今回のFTPサーバーは認証をつけていないので、その部分の処理を行いませんでした。


/home/a/aaa.txtファイルは存在し、
FTPサーバー側の権限設定も特になく、アクセスできる状態にあります。

ほかに
cd("/")
を行ってみたのですが、
Directory change failed
というエラーになってしまいました。

pwd()
も行ってみたのですが、
Could not determine the actual path.

となってしまいました。
connectはtrueを返しているので、接続はできていると思うのですが、
何か不足している手順等があるのでしょうか。

環境は
PHP Version => 5.2.12

FTPサーバーは IIS バージョン6.1(ビルド 7601 SP 1)です

どなたかご教授よろしくお願いいたします。

A 回答 (1件)

検証できる環境がないが、気になったこと。


(俺は経験不足なので間違っていると思ったら、この回答自体の無視を推奨)

>今回のFTPサーバーは認証をつけていない
これってどういう状況になるかなーと。もし、匿名アクセス時に特定のユーザー名を入力するような仕組みだったら

ftp_loginのマニュアル
http://www.php.net/manual/en/function.ftp-login. …



>Note that to make an anonymous ftp connection, you need to specify "anonymous" as the username and "" (empty string) as the password.

ユーザー名に"anonymous",パスワードを空文字列にして、ログインする必要がある

とかいうコメントが付けられていたり、

http://www.tenouk.com/visualcplusmfc/setupftp.html

中段Allow Anonymous Connectionsのあたりに
そのログインの時に使うユーザー名を指定するような設定画面があるように見えるんだよなーと。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。教えていただいた通りのユーザー名とパスワードでログイン処理を入れたところ、正しく動作するようになりました。

お礼日時:2012/03/22 21:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!