Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 >  掲示板 >  掲示板(Webサーバー上にあるファイル(複数)のダウンロード)
閲覧数:4125
掲示板(Webサーバー上にあるファイル(複数)のダウンロード)
名前
匿名
題名 Webサーバー上にあるファイル(複数)のダウンロード
質問内容

質問を評価する
(0ポイント)
JavaSE(6/7)の標準ライブラリだけで
Webサーバー上の、特定パス下にあるファイル(複数)
をダウンロードしたいのですが、
どのようにコーディングすれば宜しいでしょうか。
質問日時 2013-04-09 16:18:47
名前
匿名
回答内容

回答を評価する
(0ポイント)
単一ファイルのダウンロードを繰り返す。
回答日時 2013-04-09 16:37:57
名前
匿名
回答内容

回答を評価する
(0ポイント)
http://docs.oracle.com/javase/6/docs/api/java/util/z
ip/package-summary.html
回答日時 2013-04-09 16:59:38
名前
匿名
回答内容

回答を評価する
(0ポイント)
zipで何をせよと?
回答日時 2013-04-09 19:52:57
名前
匿名
回答内容

回答を評価する
(0ポイント)
少しはぐぐれよ。1から10まで全て聞くつもりかよ。
回答日時 2013-04-10 08:25:09
名前
匿名
回答内容

回答を評価する
(0ポイント)
エスパー解釈するとダウンローダー的な何かが作りたいとかですか?

Webサーバー側もあなたの管理下にあるならサーバー側でZIPで固めて
落とさせるのが一番楽だから、勧めてくれてるのでは?

Webサーバー側からファイルリストが取れるなら一人目の回答者の
「繰り返し」処理になると思います。

特定パスにどんなファイルがあるか分からないけど、
あるもの全部ダウンロードしたいなら無理だと思います。(言語に関わらず)
HTMLからリンクを辿って各ファイルを〜 とかなら行けそうですが
回答日時 2013-04-10 10:40:29
名前
匿名
回答内容

回答を評価する
(0ポイント)
あ、いかん。
zipでどうせよ?と書いた私は質問者じゃないんだ。
サーバを管理できるくらいなら、多分こんな質問は来ないだ
ろう。
回答日時 2013-04-10 20:36:42
名前
匿名
回答内容

回答を評価する
(0ポイント)
失礼しました。質問者だと勘違いしておりました。

> サーバを管理できるくらいなら、多分こんな質問は来ないだろう。

そうとも限りませんよ
最近ではHTTPなどの基礎ベースを飛ばしてサーブレット
からJavaの学習に入る人も一定数居られるようですし。。
回答日時 2013-04-11 11:32:16
名前
匿名
回答内容

回答を評価する
(0ポイント)
サーブレット作ってるのに引っかかってるのは基礎とか、
HTMLの話なのにごっちゃになってるのも、多いね。
Webアプリ全盛だからか。
仕事でも個人でも、増えてる気はする。

逆に言えば、基礎が会得しづらいということでもあるか。
回答日時 2013-04-11 16:16:58
名前
匿名
回答内容

回答を評価する
(0ポイント)
普通、Javaで複数ファイルDLは、それらのファイルをテンポラリーディレクトリにコピーして、ZIP圧縮してStreamで返す。

処理でファイルを新規作成する、やエラー時に元ファイルを傷つけない為、そうする。
回答日時 2013-04-11 18:13:45
名前
匿名
回答内容

回答を評価する
(0ポイント)
いや、そうじゃなくてさ…。
質問者が帰って来ないと確定はできんけど、
「ダウンロードしたい」は、クライアントだと思うよ。

大方、画像ファイルを一括DLしたいって話じゃないかな。
回答日時 2013-04-11 18:30:38
名前
匿名
回答内容

回答を評価する
(0ポイント)
??サーバ側の処理じゃないの?

そもそもDLってブラウザを開いてURL叩いて行うもんでしょ。(FTPもそういうけど)

複数ファイルがサーバ上にあるなら、サーバ側の処理になるじゃない。
公開フォルダ内にあるなら、そのパスを指定(単一の場合)すれば良い。
公開フォルダ内に無い、or複数一括してDLしたいならZIPするプログラム組まなきゃならんでしょ。

質問の意味が良く分からん。
回答日時 2013-04-11 18:45:46
名前
匿名
回答内容

回答を評価する
(0ポイント)
それは認識を改めた方がいい。

ブラウザとは、URLを打つとhttpを吐き、返ってきたものを
閲覧(ブラウズ)するもののこと。
そのオマケとして、モノに応じてファイル保存ができる
ようになってるんだよ。

サーバにあるファイルを落とすのがダウンロード。
「ダウンローダ」「ダウンロードマネージャ」のアプリは、
全部ブラウザかい?

例えば
http://hoge/moge/a.jpg
http://hoge/moge/b.jpg

と100近くあるとき、http://hoge/moge/だけで全部落とせれば
いいなってのは、理解できる話だ。
回答日時 2013-04-11 20:19:14
名前
匿名
回答内容

回答を評価する
(0ポイント)
本当は単なる「ブラウザ」だと、httpである必要すらない。
普通Webブラウザのことを指すからそう書いたけど。
回答日時 2013-04-11 20:22:24
名前
匿名
回答内容

回答を評価する
(0ポイント)
もう一点書き忘れてた。

ダウンロードでは普通、サーバは受動だよね。
表現が違うと思うんだよ。
サーバ側からするとダウンロード「させたい」んじゃない?

まあ、表現違いましたと言われればそれまでだし、
あまり質問者無視して憶測で進めても仕方ないけど…。
回答日時 2013-04-11 20:31:54
名前
匿名
回答内容

回答を評価する
(0ポイント)
だからそれって基本的にサーバ側に仕込む処理でしょ。
クライアント側の意味が分からん。

ローカルに開発環境構築して、クライアントとサーバの処理の判断が分かっていないんだと思う。
回答日時 2013-04-11 21:21:42
名前
匿名
回答内容

回答を評価する
(0ポイント)
横から失礼。
まぁ、それはクライアントの処理ではないな。
あくまでそれを処理するのはサーバ側であって
レスポンスを返却するのはもちろんサーバである。
で、結論から言うと複数ファイルデータを返却することは出来る。

が、それを処理できるクライアントでなければ
もちろん処理できない。
HTTPプロトコルの仕様上は特定のContent-typeを使用することで実現は可能。
でも、それを理解出来るクライアントでないと処理はできない。
回答日時 2013-04-11 23:05:19
名前
匿名
回答内容

回答を評価する
(0ポイント)
ちなみに補足しておくとInternet Explorerでは実現できないからね。
回答日時 2013-04-11 23:11:10
名前
匿名
回答内容

回答を評価する
(0ポイント)
今問題としてるのは、役割やあるべき論ではないんだが、
その観点から抜け出せないのなら仕方がない。
「パス」が外から見えない位置なら話は別だが。

そもそも、ブラウザがクライアントの一つだというのは
理解してるんだろうか。
まあこれ以上書いても本当に意味がなさそうだ。
回答日時 2013-04-12 00:11:09
名前
匿名
回答内容

回答を評価する
(30ポイント)
匿名ばっかでどいつがどいつだかさっぱりわからんw
回答日時 2013-04-12 00:15:13
名前
匿名
回答内容

回答を評価する
(0ポイント)
嫌味なこと書いたからと言うわけではないが、一応自分の
見解をまとめとく。
私はhttpクライアントを自作するって話だと思ってるので、
1. 全ファイルのパスが分かる場合
一覧を入力させて(GUIでもファイルでも)、連続で
httpを吐いては保存する。
2. 各パスは分からんかつWebサーバがディレクトリ
リスティングしてくれる場合
親パスのリスティングを自力でパース、後は1と同じ。
3. 各パスは分からんかつWebサーバがディレクトリ
リスティングしてくんない場合
連番なら404まで投げ続ければいいが、そうでなければ無理。

質問者が再訪して白黒付けてくれればなー。
回答日時 2013-04-12 00:36:54
名前
匿名
回答内容

回答を評価する
(0ポイント)
追加
4. 各ファイルへのリンクを持つページが判る場合
HTMLをリクエストしてAタグを拾い集めて(ry
回答日時 2013-04-12 01:08:22
名前
匿名
回答内容

回答を評価する
(0ポイント)
サーバにログインして、サーバ内の複数ファイルをかき集めるなら、わざわざHTTPを介する必要が無い。
Windowsならbat、linuxならshellで充分、copyコマンドだけで、ZIPにする必要もない。

ファイルの配置場所のパスが分からないなら、そもそもプログラムも組めない。

上の人が書いてるのも入力ボックスを設ける事でどのファイルも取得できるけど、そんなWEBアプリ聞いた事が無い(イメージとしてはクライアントにフルパスを入力させ、そのパスでサーバ上にディレクトリ、もしくはファイルがあれば、それをかき集めてクライアントに返す動作)。

そんな危険な事させちゃいけないでしょ、システムファイルが取れ放題、いくら編集できないと言っても。。

それならサーバマシンの共有設定すればいい訳だし。

>Webサーバー上の、特定パス下にあるファイル(複数)
>をダウンロードしたいのですが、

これを見る限りは、WEBアプリで外部からのリクエストで、サーバ上のファイルを一括DLしたいって事でしょ。普通に解釈すれば。クライアントの話ってどこから??

って言うか何がしたいのか、途中からのコメントでゴールが見えない。複雑に考えなければ、答えは明確と思うけど。
回答日時 2013-04-12 02:15:25
名前
匿名
回答内容

回答を評価する
(0ポイント)
それなら「サーブレットで」のようなものが入るんじゃ
ないかね。
「標準ライブラリだけ」じゃなく。
または途中で書いたけど、「ダウンロードさせたい」とか。

2013-04-10 10:40:29の人もそう取ってるし、私ひとりの
感覚ではないよ、クライアントを作るという解釈は。
とはいえ、2013-04-11 18:30:38にしろ2013-04-11 20:31:54
にしろ、サーバ側の可能性を否定したつもりもないが…。

開発者はともすれば、サーバ(でなくてもいいが)が主役
だと錯覚しがちだ。
ダウンロード「する」のは、クライアントだよ。
回答日時 2013-04-12 07:08:19
名前
匿名
回答内容

回答を評価する
(0ポイント)
…ああ、「パス」の解釈も違うようだな。
サーバ派(?)はサーバのローカルつまり絶対パスを考え、
私を含めクライアント派はURLつまり相対パスを考えてる。
これがごっちゃになると、2013-04-12 02:15:25のように
「危険なこと」という感覚も出てくる。
(絶対パスなら正しい感覚だ)
回答日時 2013-04-12 07:27:36
名前
匿名
回答内容

回答を評価する
(0ポイント)
Javaの話ではないが、同じことだから貼っておこう。
これもクライアントという解釈だ。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/399usewget.ht
ml
回答日時 2013-04-12 07:53:41
名前
匿名
回答内容

回答を評価する
(0ポイント)
http://okwave.jp/qa/q1531809.html
この質問者みたいに補足してくれれば、当事者でない人間が
ああだこうだ言い合わないで済むんだがねえ…。

ベストアンサーは、一回答でクラサバ両側に言及してるな。
なるほど良い回答だ。
回答日時 2013-04-12 08:33:45
名前
匿名
回答内容

回答を評価する
(0ポイント)
会議は踊る、されど進まず
回答日時 2013-04-12 10:30:15
名前
匿名
回答内容

回答を評価する
(0ポイント)
何か無意味。
質問者、クソ。
回答日時 2013-04-12 15:32:27
名前
匿名
回答内容

回答を評価する
(0ポイント)
無意味じゃないよ。
同じことをしたい人がぐぐったときに、ここを見るかも
知れないじゃん。
その人も無意味だと思うかも知れないが、また別の人は
ヒントを拾いあげるかもしれない。
質問が曖昧だと回答者が混乱するってのも、判るかもね。
回答日時 2013-04-12 21:00:57
名前
匿名
回答内容

回答を評価する
(0ポイント)
無意味だよ。

そもそも「2013-04-11 18:30:38」の人の拡大解釈だよ。

> Webサーバー上の、特定パス下にあるファイル(複数)

こう書いてるのに、その間の訳の分からんやり取りでも、クライアントの話がどう出てくるのかが分からん。

クライアントとサーバの同期を取るって行ったら、SVNとか仕組み作るなら分かる。トータスのようなソフト。

そんな事どこにも書いてないし、それを聞きたいなら始めに聞いてるはず、「Webサーバー上にあるファイル(複数)のダウンロード」と題打って、こんなくだらない話続けてるのが無意味。

ぐぐってたまたまここを読んでる人もがっかりするだけ、無駄な時間を費やすだけ。

どうせこの時期の質問は、新入社員でJavaの勉強しろって言われて誰にも聞けないからこういうとこで安易な質問連発してるだけでしょ。

質問の仕方もお礼の仕方も分からない。
まぁ、自分も最初そうだったけど。

これ以上、相手にする必要なし。
回答日時 2013-04-13 03:26:02
名前
匿名
回答内容

回答を評価する
(0ポイント)
まあ、わからない人にはわからないということだね。
それを強いてわからせる必要もないわけだし。
他人の反応も決めつけるような人には、まあ一生無理だろう。

>どうせこの時期の質問は、新入社員でJavaの勉強しろって言われて誰にも聞けないからこういうとこで安易な質問連発してるだけでしょ。
これについては、確かにそうかもね。
回答日時 2013-04-13 14:24:53

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道