• ベストアンサー

wwwディレクトリ以外に置いたファイルをDLさせたい

root--+ [Public](公開ディレクトリ)---- download.cgi     |     +-[data ](非公開ディレクトリ)---- a.zip 上記のような構成で、download.cgi にアクセスしてきた人が、ボタンを押すことによって a.zipをダウンロードできるようにしたいのですが、 どういう方法で実現させればよいでしょうか?

  • CGI
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
noname#25358
noname#25358
回答No.1

$filename = '../data/a.zip'; $/ = ''; open(IN, "<$filename"); $data = <IN>; close(IN); print "Content-type: application/zip\n"; print "Content-Length: " . (stat($filename))[7] . "\n"; print "\n"; print $data;  こんな感じでしょうか。  呼び出すときは、   <a href="download.cgi/a.zip">  こんな感じで。

tessyu
質問者

お礼

どうも、ありがとうございます! 参考にさせて頂きます。

関連するQ&A

  • wwwディレクトリ以外に置いたファイルをDLさせたい

    root--+ [Public](公開ディレクトリ)---- index.html     |     +-[data ](非公開ディレクトリ)---- a.zip 上記のような構成で、index.htmlにアクセスしてきた人が、 ボタンを押すことによって、a.zipをダウンロードできるようにしたいのですが、 どういう方法で実現させればよいでしょうか? 案だけでも教えて頂けるとありがたいです。

    • ベストアンサー
    • PHP
  • サーバ上にあるディレクトリーの非表示

    こんにちわ 現在サイトを構築している上で行き詰まっています。 自分のもっているドメイン内にダウンロード用のフォルダーを作ったのですが 例 ドメイン:www.xxx.jp フォルダ:download このフォルダー内にダウンロードコンテンツを入れます そしたらコンテンツのダウンロードのアドレスは www.xxx.jp/download/aaa.zip となります。 しかしaaa.zipの他にもbbb.zipやccc.zipの様に 他にもダウンロードコンテンツがある場合 アドレスバーにwww.xxx.jp/downloadと入力してしまうと ディレクトリー(?)の画面になり すべてダウンロード可能となってしまいます。 このディレクトリー画面を表示させないように出来るのでしょうか? 又、別に良い方法があれば教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • cgiのディレクトリについて。

    フリーの買い物カートcgiの設置(ディレクトリ)についての質問です。 こちらに質問したのは、kentwebでも質問できますが、こちらの方がcgi利用の方がたくさんいるのと、画像付きで乗るので質問しましました。 まず、kentweb Aの画像ですがダウンロードした、データには ディレクトリ説明のmartフォルダがありません。 あと、ディレクトリの階層にはレンタルサーバーに問い合わせしたのですが ちょっと違い、cg-binにcgiデータを入れて欲しいということでした。 check.cgiではNGだらけでした。 まず、先頭の記述はあってますし、パーミッションもあってます。 ファイル転送はMacからアスキーで転送してますが、その時UTF-8またはShift_JISなのかわかりません。 ダウンロードしたlibやdataフォルダにはcgiやperlデータがございます。 これを部分的に取り出して、cgi-binに入れるのか? それともパブリックフォルダに入れるのかわかりません。 おそらく、init.cgiURLやサーバーのパスの..にするか絶対パスにした方が いいのか?どうやら、このあたりのディレクトリの間違いだと思うのですが、 どの辺りを直せばいいのでしょうか?

  • ファイルまたはディレクトリが壊れているため、読み取ることが出来ません。

    外付けのハードディスクが急に開くことが出来なくなってしまいました。 開こう(アクセス)とすると、「H:¥ アクセス出来ません。 ファイルまたはディレクトリが壊れているため、読み取ることが出来ません。」   このドライブに大切なデータが入っております。何とか復旧する方法を、わかりやすく教えて下さい。 お願いします。

  • Tomcatのwebappsディレクトリについて

    Tomcatについて勉強しているのですが、webappsディレクトリについてよく分からないので どなたかご回答をよろしくお願いします。 Tomcat 6.0をNomalインストールすると、webapps配下には以下のディレクトリが存在しています。 ・docs ・host-manager ・manager ・ROOT 質問1 webapps配下に存在するディレクトリの中身は(WEB-INF配下を除いて)基本的に 公開されるものだと思っているのですが ブラウザからアクセスすると「ROOT」配下のコンテンツのみアクセスができません。 「ROOT」ディレクトリだけ何か特別な設定がされているのでしょうか? また、その設定はどのファイルで確認できますか? 質問2 「http://localhost:8080」とブラウザに入力すると「ROOT」フォルダ配下のindex.htmlにアクセスされます。 この設定はどのファイルに定義されているのでしょうか? 質問3 「host-manager」「manager」「ROOT」フォルダはなんのためにあるのでしょうか? 削除しても問題無いでしょうか? 以上、よろしくお願いします。

    • ベストアンサー
    • Java
  • PerlでCGIを書いておりますが、特定のURL(ディレクトリ)の位置データを取得するには?

    PerlでCGIを書いております。 http://test.com/a/test/index.cgiにアクセスしているときに、perlがaを取得して、http://test.com/b/test/index.cgiにアクセスしているときbを取得する良い方法は有るのでしょうか?WindowsとLinuxの両方で動作できれるものがあれば宜しくお願いします。 WindowsとLinuxではディレクトリの感じが違うようなので1個の方法で実現できれば助かります。

    • 締切済み
    • CGI
  • CSVファイルのダウンロード

    <環境> PHP4.3.2 Windows2000 PostgreSQL RedHat Linux <求めていること> DBのデータをCSVファイルに書き出し、 ダウンロードボタン押下で ダイアログがアップしファイル保存ディレクトリ選択、保存。 <現在のソース> サーバーにtest.csvファイル作成後、 現在HTMLでダウンロードボタン押下でdownload.phpを呼び出し <input type=button value="ダウンロード" onClick="location.href='download.php'"> ---------------- download.php ------------------- <?php // 1.ディレクトリ指定 //$filename="/test/test.csv"; // 2.ディレクトリ指定なし $filename = "test.csv"; header("Content-disposition: attachment; filename=$filename"); header("Content-type: application/octet-stream"); ?> ---------------- download.php ------------------- 現在、 1番のディレクトリ指定だと downloadというファイルがダウンロードされるダイアログがアップし ダウンロードされます。 2番のディレクトリ指定なしだと もちろん空のtest.csvファイルがダウンロードされます。 実現したいのは/test/test.csvのファイルをダウンロードすることです。 色々なサイトで探してみて試しているのですが 初心者なもので、行き詰まってしまいました。 申し訳ありませんが ご教授よろしくお願いします。

    • ベストアンサー
    • PHP
  • .htaccessでのディレクトリ観覧制御は完璧!?

    メールフォームで受け取った大切なお客さんの情報をログとして公開ディレクトリに置かなければならないことになり.htaccessでディレクトリすべての観覧を禁止しようと考えています。 メールフォームは mail.cgi で ログ保存ディレクトリは maillog/ です。 htaccessでブロックするため order deny,allow deny from all allow from www.hogehoge.com/mail.cgi としました。しかし聞いた話によるとhtaccessはブラウザのリファーラをチェックして判断しており悪意のユーザーが改造したブラウザを使用しリファーラを変換しログの観覧を可能にしてしまうのではないかと心配です。 この場合、やはりhtaccessでの完全なるmail.cgiのみのアクセス制御は実現できないのでしょうか? ほかの方法でさらにセキュアな方法があったらぜひ教えてください。

  • ロリポップでCGIが動きません。

    http://www.synck.com/contents/download/cgi-perl/archive/mailform.zip こちらのCGIをダウンロードして、ロリポップで 使用したいと思いreadmeに沿って 言う通りに設定を行ないましたが動きませんでした。 解凍したフォルダを置くディレクトリが指定されている? usr/sbin/sendmail というフォルダはhtmlやcgiを入れたディレクトリ直下に 作り、そこにsend.cgiを入れるのでしょうか。。。 チンプンカンプンでわかりませんので宜しくお願いします。 JavaScriptでは相性によってメールフォームが使えませんので CGIを勉強したいと思っています。

  • ダウンロードファイルの保存ディレクトリについて

    PHPでCSVをダウンロードするプログラムを作成しております。そこで質問ですが、ダウンロードダイアログが表示され、保存ボタンを押下したときに保存するディレクトリを常に同じ場所にする方法はあるのでしょうか?あるようでしたら方法を教えて下さい。

    • ベストアンサー
    • PHP

専門家に質問してみよう