質問編集履歴
3
コードを見やすくしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
ZipOutputStreamはjava.util.zip以下を使用しています。
|
6
6
|
|
7
|
-
|
7
|
+
```Java
|
8
8
|
|
9
9
|
// HTTPヘッダの設定後
|
10
10
|
|
@@ -18,25 +18,25 @@
|
|
18
18
|
|
19
19
|
for(取得したファイルのぶんだけループ){
|
20
20
|
|
21
|
-
zos.putNextEntry(new ZipEntry("フォルダ名/" + 取得したファイル名));
|
21
|
+
zos.putNextEntry(new ZipEntry("フォルダ名/" + 取得したファイル名));
|
22
22
|
|
23
23
|
|
24
24
|
|
25
|
-
try(InputStream is = 取得したファイル) {
|
25
|
+
try(InputStream is = 取得したファイル) {
|
26
26
|
|
27
|
-
byte[] buffer = new byte[1024];
|
27
|
+
byte[] buffer = new byte[1024];
|
28
28
|
|
29
|
-
int readLength = 0;
|
29
|
+
int readLength = 0;
|
30
30
|
|
31
|
-
while((readLength = is.read(buffer)) != -1) {
|
31
|
+
while((readLength = is.read(buffer)) != -1) {
|
32
32
|
|
33
|
-
zos.write(buffer, 0, readLength);
|
33
|
+
zos.write(buffer, 0, readLength);
|
34
34
|
|
35
|
-
}
|
35
|
+
}
|
36
36
|
|
37
|
-
}
|
37
|
+
}
|
38
38
|
|
39
|
-
zos.closeEntry(); // 数回繰り返しているうちに、ここでzosをcloseしているのか、画面に保存ダイアログが表示される
|
39
|
+
zos.closeEntry(); // 数回繰り返しているうちに、ここでzosをcloseしているのか、画面に保存ダイアログが表示される
|
40
40
|
|
41
41
|
}
|
42
42
|
|
@@ -44,7 +44,7 @@
|
|
44
44
|
|
45
45
|
|
46
46
|
|
47
|
-
|
47
|
+
```
|
48
48
|
|
49
49
|
|
50
50
|
|
2
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ZIPを作りダウンロードしたいが、
|
1
|
+
ZIPを作りダウンロードしたいが、ZIPエントリを閉じると同時に保存ダイアログが表示されてしまう(closeしている?)
|
test
CHANGED
@@ -18,21 +18,21 @@
|
|
18
18
|
|
19
19
|
for(取得したファイルのぶんだけループ){
|
20
20
|
|
21
|
-
zos.putNextEntry(new ZipEntry("フォルダ名/" + 取得したファイル名);
|
21
|
+
zos.putNextEntry(new ZipEntry("フォルダ名/" + 取得したファイル名));
|
22
22
|
|
23
23
|
|
24
24
|
|
25
25
|
try(InputStream is = 取得したファイル) {
|
26
26
|
|
27
|
-
byte[] buffer = new byte[1024];
|
27
|
+
byte[] buffer = new byte[1024];
|
28
28
|
|
29
|
-
int readLength = 0;
|
29
|
+
int readLength = 0;
|
30
30
|
|
31
|
-
while((readLength = is.read(buffer)) != -1) {
|
31
|
+
while((readLength = is.read(buffer)) != -1) {
|
32
32
|
|
33
|
-
zos.write(buffer, 0, readLength);
|
33
|
+
zos.write(buffer, 0, readLength);
|
34
34
|
|
35
|
-
}
|
35
|
+
}
|
36
36
|
|
37
37
|
}
|
38
38
|
|
@@ -46,4 +46,14 @@
|
|
46
46
|
|
47
47
|
|
48
48
|
|
49
|
+
|
50
|
+
|
51
|
+
zos.closeEntry();を記述しなかった場合、zos.putNextEntryで同様の事象が発生します。
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
ファイルが2個くらいなら発生しないのですが、4個くらいから確実に発生しています。
|
56
|
+
|
57
|
+
|
58
|
+
|
49
59
|
見づらくてすみませんが、何か分かる方教えてくださいますと幸いです。
|
1
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ZIPを作りダウンロードしたいが、closeEntryでcloseして
|
1
|
+
ZIPを作りダウンロードしたいが、closeEntryで保存ダイアログが表示されてしまうことがある(closeしている?)
|
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
ZIPを作成し、保存ダイアログを出したいですが、作成中のcloseEntryを何回か呼び出すうちに、ZipOutputStreamがcloseされてしまい困っています。
|
1
|
+
ZIPを作成し、保存ダイアログを出したいですが、作成中のcloseEntryを何回か呼び出すうちに、ZipOutputStreamがcloseされているのか途中で保存ダイアログが出てしまっていて、困っています。
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
java.util.zip以下
|
5
|
+
ZipOutputStreamはjava.util.zip以下を使用しています。
|
6
6
|
|
7
7
|
|
8
8
|
|
@@ -16,9 +16,9 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
for(){
|
19
|
+
for(取得したファイルのぶんだけループ){
|
20
20
|
|
21
|
-
zos.putNextEntry(new ZipEntry("
|
21
|
+
zos.putNextEntry(new ZipEntry("フォルダ名/" + 取得したファイル名);
|
22
22
|
|
23
23
|
|
24
24
|
|
@@ -36,11 +36,9 @@
|
|
36
36
|
|
37
37
|
}
|
38
38
|
|
39
|
-
zos.closeEntry(); // 繰り返しているうちに、ここでzosをcloseしているのか、画面に保存ダイアログが表示される
|
39
|
+
zos.closeEntry(); // 数回繰り返しているうちに、ここでzosをcloseしているのか、画面に保存ダイアログが表示される
|
40
40
|
|
41
41
|
}
|
42
|
-
|
43
|
-
|
44
42
|
|
45
43
|
zos.close();
|
46
44
|
|