質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.05%

HTMLでファイルを一括ダウンロードする方法

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,205

score 13

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にはファイルが見つかりません"
と表示されダウンロードすることができません。

どうしたらよいでしょう。ご教示いただけますと幸いです。よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • m.ts10806

    2019/10/24 10:13

    こちらは回答ではなく質問への追記修正依頼です。
    「わからない」となると「ファイルが見つかりません」という日本語が分からないということになりますけども…。sample.pyも「ファイル」です、というのはご認識ありますか?

    キャンセル

  • m.ts10806

    2019/10/24 10:17

    あと、私はPython分かるわけではないですが、ご自身が書いたプログラムの提示がないのに「プログラムのどこを修正すべきか」を聞くのは横暴です。
    例え何かの参照したものをそのままだったとしても自身が書いたコードとして「質問本文に」提示してください。質問は編集できます。
    コードはマークダウン利用してくださいね。Pythonですとインデントが生命線なので間違っても平で提示してはいけません

    キャンセル

  • dodox86

    2019/10/24 10:24

    「コピペしたものが動かないのですがどうしたら良いのでしょうか。」では作業依頼に終始しますね。ちょっと回答は望めないと思います。

    キャンセル

回答 2

checkベストアンサー

+1

今現在言えることだけを回答とします。

ブラウザからURLを実行する以上は、ブラウザからアクセスできる場所に実行したいプログラムが置かれている必要があります。
(importするのであればどこでもいいですが、そのimportが書かれているプログラムはブラウザからアクセスできる必要がある)

見たところクエリストリングで実行しようとしているのでアクセス的にはGETですね。ということは、そのURLをHTMLリンクからではなく、ブラウザのアドレスバーに(httpから)打ち込んでも同じ結果が得られるわけです。

プログラムが書かれているのも「ファイル」です。
ブラウザから(正確にはサーバーから)、「ファイルが見つからない」と返されたのであれば、そのプログラムが何をしていようとあくまで「実行したURLに該当するプログラムファイルが見つからない」ということのみを教えてくれています。

つまり、指定したURLが正しくない、またはブラウザからアクセスできる場所ではない、のがほとんどです。

ということは後は単純で、ブラウザからアクセスできる有効なURLを指定すれば良いだけになります。それは今提示されている情報だけでは他者はわかりません。
ご自身で立てられたサーバーぽいですし、Webルーとも把握しているであろう質問者さんが確認して調整できる範囲という認識です。

※補足しておくと、ダウンロード処理を書くときにダウンロードしたいファイルが見つからないというのは基本的にはプログラム側の仕事です。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/10/24 11:06

    ご回答ありがとうございます。
    おかげさまで解決することができました。

    キャンセル

0

ファイルが存在するところ(ファイルがダウンロードできるところ)にリンクを修正しましょう

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/10/24 10:03

    早速のご回答ありがとうございます。
    ファイルが存在するところというのは.jpgが存在するところでしょうか?
    それらは/var/www/html/cgi-binにあるのですがどのように修正すればよいでしょうか?
    また、修正するべきリンクはhtml側のプログラムのどこでしょうか?
    お手数をおかけしますが、再度ご回答いただけますと幸いです。よろしくお願いいたします。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.05%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る