[PHP-users 5866] Re: PHPでのFTP 転送。
harikawa
php-users@php.gr.jp
Mon, 04 Mar 2002 18:29:57 +0900
針川@茅ヶ崎です。
いつも参考にさせていただいてます。
> PHPのFTP関数を使用してサーバにFTPできるようにプログラムを作成していまが、
> ファイルをアップロードするときに
> 「error opening 指定したファイルパス」
> というエラーが表示されてしまって、アップロードができません。
snip
> // ファイルをアップロードする
> $destination_file = "test.gif";
> $upload = ftp_put($conn_id, "$destination_file", "$gazou",
> FTP_BINARY);
> if ( ! $upload ){
> //#######ここでエラーが発生#################
> $ERROR = "転送に失敗しました。\n";
> }
> }
PHP の FTP 転送は PASSIVE モードでないと使えません。
(コマンドはうまくいっても put, get, nlist で失敗します)
あと、PASSIVE でも権限とポートの関係で失敗することがあるようです。
私の場合は一部、フィルタに引っかかってうまくいかず、フィルタの変更はし
たくないので、この部分だけ popen で直接 ftp を呼んでます。
ただ、以下のコードは FreeBSD4.4 付属の ftp ですから、他のではうまくい
かないかもしれません。
$cmd =
"ftp://".$ftp_user_name.":".$ftp_user_pass."@".$ftp_server."/".$ftp_dir."/";
$pp = popen( $cmd, "w" );
if( $pp )
{
$cmd = 'put '.$gazou.' '.$destination_file."\n";
fputs( $pp, $cmd );
fputs( $pp, "quit\n" );
pclose( $pp );
}
else $this->res = $php_errormsg.':送信に失敗しました';
だめだったらごめんなさい。
((((((((( Soft-inn 針川英智 )))))))))
)))) http://www.softinn.to/ ((((
((( harikawa@softinn.to )))
)))) Tel:0467-59-1003 Fax:1002 ((((
((((_______ 茅ヶ崎市共恵1-15-1 ______))))