[PHP-users 5876] Re: PHPでのFTP 転送。

Endou php-users@php.gr.jp
Tue, 5 Mar 2002 09:30:57 +0900


遠藤です。
参考にさせていただきました。

早速、試してみたいと思います。
ありがとうございました。



> 針川@茅ヶ崎です。
> いつも参考にさせていただいてます。
>
> > PHPのFTP関数を使用してサーバにFTPできるようにプログラムを作成していま
が、
> > ファイルをアップロードするときに
> >   「error opening 指定したファイルパス」
> > というエラーが表示されてしまって、アップロードができません。
>
> snip
>
> >        // ファイルをアップロードする
> >        $destination_file = "test.gif";
> >        $upload = ftp_put($conn_id, "$destination_file", "$gazou",
> > FTP_BINARY);
> >        if ( ! $upload ){
> >             file://#######ここでエラーが発生#################
> >             $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 ______))))
> 
> _______________________________________________
> PHP-users mailing list
> PHP-users@php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
>