回答編集履歴

1

追記

2018/10/17 15:30

投稿

colling
colling

スコア798

test CHANGED
@@ -33,3 +33,89 @@
33
33
 
34
34
 
35
35
  1000以上のファイルのリスト(2000?とか3000?)から、ユーザーが必要なものを選択する。という動作があるのでしたら、上でyambejpさんが説明されている方法で選んだ時点でダウンロードするのと、なんら変わらないような気がします。最後に`まとめてダウンロードする`ボタンをクリックする手間が、もうワンクリックですが増えることになりますし、1000回分のリクエストを待つというユーザー側の時間的コストも増えますし、サーバー側も連続してリクエストを受けることになります。
36
+
37
+
38
+
39
+
40
+
41
+ ----------------------
42
+
43
+ 追記です。
44
+
45
+
46
+
47
+ yambejpさんの説明で、aタグのdownload属性でダウンロードできるということを知りましたので、javascriptだけで作ってみました。
48
+
49
+
50
+
51
+ IEは、download属性が効かないので無理みたいです。(持ってないのでわかりません。w)
52
+
53
+
54
+
55
+ ※`ただ、ダウンロード時にダイアログが出るか出ないかは、ブラウザに設定があるみたいです。`
56
+
57
+
58
+
59
+ 下記、`multi_download()`を、フォームから値を拾って、ぶん回すなりの工夫をすればよろしいのではと思います。
60
+
61
+
62
+
63
+ ```html
64
+
65
+ <!doctype html>
66
+
67
+ <html lang="ja">
68
+
69
+ <head>
70
+
71
+ <meta charset="utf-8">
72
+
73
+ <title>Multi Download Sample</title>
74
+
75
+ <script>
76
+
77
+ function multi_download() {
78
+
79
+ download("1.jpg");
80
+
81
+ download("2.jpg");
82
+
83
+ download("3.jpg");
84
+
85
+ download("4.jpg");
86
+
87
+ download("5.jpg");
88
+
89
+ }
90
+
91
+ function download(name) {
92
+
93
+ // chrome,firefox ただし、毎回確認ダイアログが出るかどうかはブラウザの設定による。
94
+
95
+ var a = document.createElement('a');
96
+
97
+ a.download = name;
98
+
99
+ a.href = name;
100
+
101
+ document.body.appendChild(a);
102
+
103
+ a.click();
104
+
105
+ document.body.removeChild(a);
106
+
107
+ }
108
+
109
+ </script>
110
+
111
+ </head>
112
+
113
+ <body>
114
+
115
+ <button type="button" onclick="multi_download();">マルチダウンロード</button>
116
+
117
+ </body>
118
+
119
+ </html>
120
+
121
+ ```