• ベストアンサー

FTP関数について

FTP関数についての質問です。 自分のHPからFTPを用いてファイルをダウンロードできるように したいため、FTPサーバに接続してファイルをダウンロードさせる ロジックを作ったのですが、うまくいきません。 というのは、私の作ったFTP処理では、サーバ上で実行されるので、 呼び出し元がサーバになり、ファイルはサーバ上にダウンロード されてしまうのです。 そこで質問なのですが、 PHPのFTP関数は、クライアントからプログラムを実行しないと クライアント側にファイルはダウンロードされないのでしょうか?

  • PHP
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • maro
  • ベストアンサー率47% (95/199)
回答No.1

PHPがFTPサーバーに接続するための関数なので、そういう使い方ではないと思います。 マニュアルにも >この拡張モジュールの関数は、http://www.faqs.org/rfcs/rfc959.htmlで定義された File Transfer Protocol (FTP)を使用してファイルサーバにアクセスするクライアントの 実装です。 と書いてあります。 ファイルをダウンロードさせるなら、FTPでなくてもHTTPでもいいのではないですか?

参考URL:
http://www.php.net/manual/ja/ref.ftp.php
ega_village
質問者

お礼

そうなのですか。 残念です。 HTTPよりFTPを選んだ理由はレジューム機能がFTPにはあったからです。 HTTPでダウンロードを行なう場合、Header関数を 使ったいるのですが 正常に機能しません。 ですので、FTPならと思い試してみたのです。 それから、Header関数を使用している理由は ファイルが日本語名だからです。 <a>タグのhrefに直接かくと使用できない日本語があるみたいで ダウンロードできな場合が発生するからです。 FTPは無理そうですのでHTTP1本でいこうと思います。 有難うございました。

その他の回答 (1)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

<a href="ftp://ホスト/~">ftp でダウンロード</a> という話ではなくて?

ega_village
質問者

お礼

返信有難うございます。 <a>タグを使用したくない理由はFTPのユーザとパスワードの 設定が出来ないからです。 <a> ですとanonymous しかできませんよね。 ですので、PHPを使用して作ろうと考えたのです。。 しかし、出来ないみたいですので HTTPのみにしようかと思います。

関連するQ&A

  • PHPのFTP関数ftp_fgetエラーに関する疑問

    こんにちは PHPでFTPサーバからファイルをダウンロードしようとしていますが、下記のエラーが来ました: PHP Warning: ftp_fget:あと4048バイト以上アップロードする必要があります。..... 同じftp_get関数もほぼ同じメッセージを出しています。 どうすればFTPのファイルをうまくダウンロードできますか? 環境:Apache 2.48 & PHP 5.1

    • 締切済み
    • PHP
  • phpでFTP関数を有効にする方法

    PHPでFTPサーバにファイルをアップロードしたいんですが、うまくいきません。 接続すらできないので、もしやと思いphp info()で確認したところ、「ftpsupport enable」と表示されないとftp関数が実行されないのではないかと思っています。 ftpsupportを有効にするにはphp.iniのどこを変えればよいのでしょうか。色々調べてみたのですが、見つけることができませんでした。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPでftpを行うと速度ダウン

    PHPを使ってftp処理をしています。例えば、下記の通りのプログラムを作ったとします。 ---(※エラー処理を削除しています)--- <?php // 接続を確立する $conn_id = ftp_connect($ftp_server); // ユーザ名とパスワードでログインする $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // ファイルをアップロードする $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); // FTP ストリームを閉じる ftp_close($conn_id); ?> ---------------------------------- 問題なく、ftp処理はできるのですが、MS-DOSプロンプトからftpした場合やffftpなどのソフトを使ってftpした場合と比べて格段に速度が落ちます。 具体的に言えば、サーバ側・クライアント側も光回線を使っていた場合に MS-DOSプロンプト:80Mbpsくらい PHPによるftp:10Mbpsくらい の速度に落ちます。実行速度はMRTGを使ってみています。 PHPの仕様上、どうしようもないものなのでしょうか。 もしくは速度アップの関数などあるのでしょうか。 ご存知の方、ご教授ください。

    • 締切済み
    • PHP
  • ftp_getできない?

    レンタルサーバの自前のファイルサーバからFTP接続にてファイルを取得しようとしているのですが、エラーとなってしまいます。 FTP接続はできているのですが、ファイルの取得に失敗(FALSE)してしまいます。 レンタルサーバの環境は OS:Linux PHP:4.4.1 試しにftp_nlist関数にてファイル一覧を取得しようとしましたが、やはり失敗(FALSE)してしまいます。 知り合いのレンタルサーバを借用して全く同じプログラムを実行すると正常に一覧の取得ができました。 FTP接続時・ログイン時にはエラーが発生していないのでFTPでの転送は可能だと思うのですが、全くわかりません。 どなたか分かる方ご教授お願いします。 以下、スクリプトです。 if($ftp=ftp_connect($ftp_host)){  if(ftp_login($ftp,$ftp_user,$ftp_pass)){   //ファイルリスト一覧取得    $file_list=ftp_nlist($ftp,".");   var_dump($file_list);   //ファイルダウンロード    if(!(ftp_get($ftp,$local_file,$remote_file,FTP_BINARY))){     エラー処理1;    }   }   else{     エラー処理2;   } } else{  エラー処理3; }

    • ベストアンサー
    • PHP
  • FTPでのGET

    サーバ上にあるファイルをFTPのGETでダウンロードする場合、 転送中のサーバ上のファイルは、どうなるのですか? 切り取りで転送することは可能ですか? サーバ側では、 クライアント側で転送中であるかどうか、 もしくは削除して欲しいのですが。 転送中に、そのファイルを触れないようにするため。

  • ブラウザーからサーバ側のaspファイルを読み込む方法について

    クライアント側のVBscriptやJavaScriptなどのスクリプト 言語から画面を遷移しないでプログラム内でaspファイルを 呼びサーバ側での処理をした後にまたその後のプログラム を実行するような処理をしたいのですがどのように記述し たらよいのでしょうか? (クライアントのプログラム内でサーバ側のaspファイルの 関数を呼び処理の結果をクライアントのスクリプト言語に 反映させたいのですが。。。)

  • linuxでのftpクライアントプログラムをつくるには

    Windows(VC++ MFCを使用して)などで ftpクライアントのプログラムを作成することが出来るみたいですが linux(TURBO LINUX 4.0)で同様なことはできないのでしょうか? 具体的には 以下のようなことがしたいためです。 (1) ftpサーバーにlinuxマシンにてクライアントでログイン (2) サーバー上のftpホームディレクトリにあるファイルができるまで周期的に監視 (3) 該当するファイルができたらファイルをクライアント側に転送 (1)~(3)を一回のftp接続状態のまま自動的(プログラム)で行ないたいのです。 VC++ MFCでは,FTPを行なうクラスがいくつかあるみたいですが? どなたかわかりましたら御回答ください。

  • FTPコマンドでgetしたい

    FTPコマンドでファイルを転送したい。操作はクライアントで行っています。 サーバ⇒クライアントです。ディレクトリー構成は。(サーバー側)c:\2.txt を⇒(クライアント側)c:\2.txt に転送したいのですがエラーが出ます。次のように実行しています。 ftp>get c:\2.txt c:\2.txt としています。これを実行すると次のエラー 【550 c:\2.txt :The filename is incorrect】 と出ます。どうすればよいでしょうか? ファイルタイプもascii にしたりbin にしたり試しているがだめです。 お願いします。

  • PHPでFTP関数を使いたいと考えていますが、

    PHPでFTP関数を使いたいと考えていますが、 いろいろ回ってみても中々使えるサーバに出会えません。 ロリポップでは設定はされているとの記事を見かけたのですが、 ドキュメントルート以下しか使えないなど不便な面が多く使うのは控えようかと考えています。 私の探し方も上手くないのでしょうか・・・。 ある程度金額は高くても良いので(~10000円) ドキュメントルートより上も操作可能で、なおかつPHPとmysqlが使え、 PHPのftp関数がデフォルトもしくは設定にて使用可能なレンタルサーバをご存知の方は お教えいただけないでしょうか? お手数ですがよろしくお願いいたします。

  • Windows2000のFTPサーバについて

    室内LANからルータにつないだWindows2000をFTPサーバにして、同じく室内LANにつないだ(ルータにはつないでません)Vine LinuxをFTPのクライアントにしました。 そして、クライアントからサーバにLoginを行うことはできたのですが、"ls"コマンドを用いたファイル一覧を実行しようとすると "227 Entering Passive Mode(xxx.xxx.xxx.xxx,zzz.zzz)" と出て、その後何の反応も返ってこないため、表示させることができません。 どのようにしたら、クライアント側からのファイル一覧を実行させることができるのでしょうか?