• 締切済み

複数のデータをダウンロードさせる時、自動で最後のデータまで一つずつダウンロードが完了する方法は?

Webページで重いデータ(重いデータの場合だと600MB強ある)をダウンロードする ようにしているのですが、たまにお客様から、 「200MB過ぎたあたりでダウンロードが勝手に途中で終わってしまう。しかも終了したように見えてそうなる」 などという、ダウンロードが途中で中断されることが起こっております。 こちらでダウンロードを試すのですが、何度やっても普通に最後まで正常に完了するので困っております。 そこで、複数のデータにデータを分割してダウンロードしてもらおうとしているのですが、 普通にデータを分割数分(7個になる)リンクさせるだけでは、最後のファイルがダウンロード完了するまでの間、ずっと張り付いていなければなりません。 IEだと同時に2ファイルしかダウンロードできないですし、Firefoxな同時制限のないブラウザだからといっても、同時に全ファイルをDLしているとどれかがダウンロード強制停止する場合もあります。 よって、ダウンロードさせる時、一つ目がダウンロードできたら自動で二つ目のダウンロードが開始され、二つ目が終われば自動で三つ目が~と自動で次々に移行していき、最後のファイルまで続けられ、ダウンロードが停止するときは全データ数がダウンロード完了している状態にしたいのですが、どのようにしたら良いでしょうか?

みんなの回答

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.5

{「ダウンローダーソフトをインストールして自分で便利よくやってください」などと、お客様にやらせることなどできませんよね。} がどうしてもネックになりますね。 No2さんの言われるように、専用ダウンロード用のアドオンとかプラグインをを自作したとしても、それをお客さんのブラウザーにお客さんがインストールする必要が絶対ありますし、仮にVBやCでTCPIPソケットを使うSOAPやFTP の受信プログラムを作ったとしても、やはりインストールする必要が絶対ありますね。よいアイデアが思いつかない...

touchy
質問者

お礼

いやいや何度もご協力いただいてありがとうございます。 CGI、PHP、Javaなどのサーバサイドスクリプトでは難しいのですね・・・

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.4

「ご指摘の悪い使い方を私がしなければそれで済む話かも知れません。 あ、いや違いますか、私が他で使用しなくとも、うちのスタッフがこれを知れば悪用を思いつくかも、ということなんでしょうかね。」 解釈が少し違います。 誰もが、そのようなプログラムを作れないような仕組みになっている訳です 作れたとしたら、それは新たなセキュリティホールの発見という事です。

touchy
質問者

お礼

なるほど、そんなことができたらまずいので、そのようなプログラム指示語自体があえて言語開発者の意図でつくられていないんですね! ありがとうございました

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.3

サーバーサイトのプログラムで、分割したn個のファイルを 順番に送るようにするのは、簡単ですが、正常に受信できたか 確認しながら制御するのは難しいですね。 phpならconnection_aborted()で拾えば、ダウンロード失敗が ハンドリング出来そうです。 でも失敗したからといって、無条件に再送出来るような仕組みを 作るのはもっと大変そう。だってその仕組みがあれば、勝手に 他人に多量のファイルを送りつける事が出来てしまう。

touchy
質問者

お礼

着実なご回答、ありがとうございましたm(_ _)m > サーバーサイトのプログラムで、分割したn個のファイルを 順番に送るようにするのは、簡単ですが、正常に受信できたか 確認しながら制御するのは難しいですね。 なるほど、そこが難しいのですか。 > phpならconnection_aborted()で拾えば、ダウンロード失敗がハンドリング出来そうです。 PHPならばできそうなのですか。なるほど。 > でも失敗したからといって、無条件に再送出来るような仕組みを作るのは > もっと大変そう。だってその仕組みがあれば、勝手に他人に多量のファイルを送りつける事が出来てしまう。 なるほど。結局connection_aborted()で出来そうなものの、勝手に他人に多量のファイルを送りつけられなくするプログラミングが大変なのだと理解しました。 ただ、自社サイトに本件目的でおこなうだけの用途ですから、ご指摘の悪い使い方を私がしなければそれで済む話かも知れません。 あ、いや違いますか、私が他で使用しなくとも、うちのスタッフがこれを知れば悪用を思いつくかも、ということなんでしょうかね。 大量に重いファイルを送りつけられるのは確かにまずいですね・・・ 勉強になるご指摘までありがとうございました

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.2

> おっしゃるとおり、ダウンローダーの存在は知っていますが、お客様に自社サイトのデータをダウンロードしてもらう用途なわけですから、まさか > 「ダウンローダーソフトをインストールして自分で便利よくやってください」 > などと、お客様にやらせることなどできませんよね。 該当する用途であれば、 ブラウザエクステンションなる物を使用して、ダウンローダーを自作する事で、 解決を出来るかもしれません。

  • ann_dv
  • ベストアンサー率43% (528/1223)
回答No.1

そのようなお悩みを解決するために、世の中には「ダウンローダ」なるダウンロード支援ソフトウェアが出回っています。 参考URLはほんの一例に過ぎません。「ダウンローダ」で検索すれば他にも多数見つかると思います。

参考URL:
http://sogefreesoft.blog88.fc2.com/blog-category-7.html
touchy
質問者

お礼

ありがとうございますm(_ _)m おっしゃるとおり、ダウンローダーの存在は知っていますが、お客様に自社サイトのデータをダウンロードしてもらう用途なわけですから、まさか 「ダウンローダーソフトをインストールして自分で便利よくやってください」 などと、お客様にやらせることなどできませんよね。 CGIやPHPなどのサーバサイドスクリプトのWebプログラムが必要だと思っております。

関連するQ&A