解決済みの質問
Webサーバーの公開フォルダにあるファイルを、ローカルに保存したいのですが、Linuxのように wget http://xxx.xxxx.xxx/zzzz/ddd.zipする方法をPHPで考えてます。
例
$get1 = "http//xxx.xxxx.xxx/zzz/ddd.zip";
$get2 = "ddd.zip";
header("Content-Type: application/zip");
header("Content-disposition: attachment; filename=$get2");
$fp = fopen($get1, 'rb');
ダウンロードする際にダイアログが開かないで、ローカルの指定のフォルダに保存をおこなうようにしたいです。よろしくお願いします。
投稿日時 - 2008-02-08 18:57:10
補足ありがとうございます。
>サーバー機のApache公開フォルダ(ブラウザでアクセスするとindexが見える
>状態)へ、クライアント内で直接PHPスクリプトを実行させ、サーバーから
>ファイルGETをしてくるイメージです。なのでサーバー側にはPHPスクリプト
>はありません。
であれば、クライアントPCで実行するphpスクリプトは、
・file_get_contentsでサーバからファイルを読み込む
(Apacheが返す内容しか取得できない)
・取得した内容を直接ローカルのファイルに書き出す
という手順になるのではありませんか?
投稿日時 - 2008-02-12 03:31:00
お礼
shimixさん、忙しいところ回答ありがとうございます
fputs($file_dir.$file_name, file_get_contents($http_url));
で直接ローカルの指定場所にファイル保存できました。
このたびはご教示していただきありがとうございました。
投稿日時 - 2008-02-15 12:03:34
0人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(1件中 1~1件目)
phpスクリプトを置いているサーバとは別のサーバのファイルですよね?で、phpを置いているサーバでなく、phpにアクセスしたクライアントのローカルに保存という手順でよろしいですか?
もしそうであれば、自動的に指定のフォルダに保存は出来ません。そんなことが出来たらセキュリティホールになってしまいますから。
#そもそもクライアントPCのOSもわからないし・・
投稿日時 - 2008-02-08 21:53:57
補足
shimixさんお忙しい所、投稿ありがとうございます。
>phpスクリプトを置いているサーバとは別のサーバのファイルですよね?
はい、その通りです。
えーと、もう少し加筆しますね
サーバー機のApache公開フォルダ(ブラウザでアクセスするとindexが見える状態)へ、クライアント内で直接PHPスクリプトを実行させ、サーバーからファイルGETをしてくるイメージです。なのでサーバー側にはPHPスクリプトはありません。
動作環境ですが、クライアントはWindows上でxamp環境下でPHPを動作させてます。表現が正しいかわかりませんが、FTPサーバー(ここで言うApache公開フォルダ)にアクセスしファイルGETするような動作(ユーザー認証なし)をPHPスクリプト行う・・・もっとわかりにくくなってきたのでunset(汗);
投稿日時 - 2008-02-09 01:32:50