レンタルサーバのxrea.com や
LivedoorBlog の有料サービスで使用できるFTPサーバ接続へ、
PHPからファイル送信ができなかったのですが、それへの対処法です。
なかなか、PHPを使ってFTPサーバへファイルをアップロードしようという人もいないようで、
対処法が見つからなかったのです。
単純に
ftp_pasv($conn_id, true);
これをやればよかっただけでした。
ファイルパスとかも、どうやれば正解なのか良くわからなかったけど、
まぁ、とりあえず動きました。
$ftp_server = "ftp.example.com";
$ftp_user_name = "ftpusername";
$ftp_user_pass = "ftppassword";
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if((!$conn_id) || (!$login_result)){return false;}
/* ここの第二引数の true が大事。これがないと、アップロードできないFTPサーバがあるみたい。 */
ftp_pasv($conn_id, true);
/* 実行されているPHPファイルと同一階層にある test.txt をアップロードする */
$file = "test.txt";
$local_file = $file;
/* FTP接続時に最初に開かれるディレクトリにアップロードする。 */
$remote_file = $file;
/* xrea の場合は、このように書くと、良いと思います。 uploadtest のパーミッションを707とかにすること。*/
$remote_file = "public_html/uploadtest/".$file;
if(!ftp_put($conn_id, $remote_file, $local_file, FTP_BINARY)) {
print("---- uploadNG ----");
}
ftp_close($conn_id);
まぁ、結局、FTPは使わないことにしたのですけども。
0 件のコメント:
コメントを投稿