ファイルをダウンロードするには?

[上に] [前に] [次に]
ゆう 2000/02/06(日) 08:16:05
A/B/Cというファイルがあるとします。
このA/B/Cをダウンロードさせるときにチェックボックスで
ダウンロードしたいものを選んでもらって(例:AとBにチェック)、
あらかじめ用意しておいたファイルをダウンロードするようにさせたいのですが、どのようにしたらよいでしょうか?


JavaScriptに関して大した知識がないのでよくわからないのですが、JavaScriptでこのようなことができないか、と考えているのです。

1、それぞれのチェックボックスにA/B/Cの値を割り振る。
2、チェックが入っている部分の値を全て結合(例のAとBの選択なら、A+B=AB)させる。
3、「2」で取れた値に拡張子(ZIPやLZH等)を結合させてやる
(AB+.ZIP=AB.ZIP)
4、「3」で生成したファイル名にファイルをおいているアドレスを結合させる
http://www.hogehoge.ne.jp/~foo/file/ + AB.ZIP)
5、「4」で生成したアドレスをフォームのSUBMITを押した時に新規にウィンドウを開かせてアクセス(=DLの開始)する

2000/02/07(月) 00:23:24
これは,マージした物をダウンロードさせたいと言うことですか?

ゆう 2000/02/07(月) 07:58:49
すみません、マージとはなんですか?

みんこ 2000/02/07(月) 10:28:09
いっぺんにたくさんダウンロードする訳じゃなくて、
「ab」「cde」「fghi」「.zip」「.lzh」をチェックしてもらって
例えば「abcde.zip」とか「acfghi.lzh」をダウンロード、って
事なんでしょうか。

../199904/99040154.htm
の2つめのたこすけさんの方法が近いかと。

ゆう 2000/02/07(月) 11:51:07
う〜ん、確かに近いですねぇ。。
ただ、”どれとどれが選択されている”のかを判別してアドレスを生成となると難しいですよね。

すこし調べてみたのですが、Select(Selectedだったかな?)で選択しているものを調べられる、という記述を見たのですが、これって複数なんかの場合だと無理なんですかね?

たかぴー 2000/02/07(月) 13:08:03
var val = "http://www.hogehoge.ne.jp/~foo/file/";
if (document.form1.A.checked) { val += "A"; }
if (document.form1.B.checked) { val += "B"; }
if (document.form1.C.checked) { val += "C"; }
val = val + ".ZIP";

こんな感じでどうでしょう

ゆう 2000/02/07(月) 23:40:22
ありがとうございます。

ただ、上のヤツってJavaScriptの部分だけですよね?
これから
<form>
<input type=checkbox〜
<input type=submit>
</form>
という表示する部分のHTMLと、
その生成したアドレスの値である、valを新しいウィンドウでアクセスさせるという部分はどういう風に書けば良いのでしょうか?


自分なりに考えてみたのですが、新しくウィンドウを開くのは<form target="_blank"でOKですよね?
ただ、これだけだと、新しいウィンドウが開くだけで、アクセス先が無い状態ですよね。
これにアクセス先を付けるために
<form target="_blank" action="***">でアドレスが入ると思うのですが、JSで作ったvalをactionに挿入するためにはどの様にして書けばよいのかが解りません。
また、ここの<form>にはname属性は不要なのでしょうか?

2000/02/08(火) 00:06:51
window.open使ったほうが良いでしょう.
オプションはお好みで.
<HTML><HEAD><TITLE>TEST</TITLE>
<SCRIPT LANGUAGE="JavaScript"><!--
function pazl() {
var val = "A:\\apache\\web\\";
if (document.forms[0].elements[0].checked) { val += "a"; }
if (document.forms[0].elements[1].checked) { val += "b"; }
if (document.forms[0].elements[2].checked) { val += "c"; }
val = val + ".html";
new_window = window.open(val,"new_pane","toolbar=no,width=100,height=50");
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<INPUT TYPE="checkbox">A
<INPUT TYPE="checkbox">B
<INPUT TYPE="checkbox">C
<P>
<INPUT TYPE="button" VALUE="SEND" onClick="pazl();">
</BODY>
</HTML>
これはご希望に添えてるでしょうか?

すでに興味無いかもしれませんが,マージは複数のファイルを1つのファイルにする事です.
アーカイブはひとつにまとめる事.
説明下手ですね.

[上に] [前に] [次に]