質問: Webサイトでダウンロードボタンをクリックしたらファイルが複数個一度にダウンロードできるようにしたいです。 環境はCentOS7でApacheのHTTPサーバを用いてFirefoxでの閲覧を想定しています。 HTMLで作成した”HELLO WORLD"を表示するWebページをFirefoxで閲覧することはできました。 以下のサイトを参考にして構築をしました。 ブラウザ(JavaScript)で複数のファイルを一括ダウンロードさせる /var/www/httpにindex.htmlをつくり、上記サイトのhtml側のプログラムをコピペしました。 /var/www/cgi-binにsample.pyをつくり、上記サイトのcgiスクリプトをコピペしました。 /var/www/cgi-binに001.jpg,002.jpg,003.jpgを保存しました。 そしてFirefoxでHTTPサーバにアクセスしてみるとダウンロードボタンが表示されます。 ダウンロードボタンをクリックすると "http://[HTTPサーバのIPアドレス]/cgi-bin/sample.py?f=003.jpgにはファイルが見つかりません" と表示されダウンロードすることができません。 どうしたらよいでしょう。ご教示いただけますと幸いです。よろしくお願いいたします。
回答: 今現在言えることだけを回答とします。 ブラウザからURLを実行する以上は、ブラウザからアクセスできる場所に実行したいプログラムが置かれている必要があります。 (importするのであればどこでもいいですが、そのimportが書かれているプログラムはブラウザからアクセスできる必要がある) 見たところクエリストリングで実行しようとしているのでアクセス的にはGETですね。ということは、そのURLをHTMLリンクからではなく、ブラウザのアドレスバーに(httpから)打ち込んでも同じ結果が得られるわけです。 プログラムが書かれているのも「ファイル」です。 ブラウザから(正確にはサーバーから)、「ファイルが見つからない」と返されたのであれば、そのプログラムが何をしていようとあくまで「実行したURLに該当するプログラムファイルが見つからない」ということのみを教えてくれています。 つまり、指定したURLが正しくない、またはブラウザからアクセスできる場所ではない、のがほとんどです。 ということは後は単純で、ブラウザからアクセスできる有効なURLを指定すれば良いだけになります。それは今提示されている情報だけでは他者はわかりません。 ご自身で立てられたサーバーぽいですし、Webルーとも把握しているであろう質問者さんが確認して調整できる範囲という認識です。 ※補足しておくと、ダウンロード処理を書くときにダウンロードしたいファイルが見つからないというのは基本的にはプログラム側の仕事です。