質問編集履歴

2

修正したソース及びブラウザのキャプチャを追加

2020/07/27 01:12

投稿

zvub1123
zvub1123

スコア230

test CHANGED
File without changes
test CHANGED
@@ -157,3 +157,57 @@
157
157
  指摘・修正事項・不足しているソースなどあればお申しつけください。
158
158
 
159
159
  ご回答お待ちしております。よろしくお願いします!
160
+
161
+
162
+
163
+ 2020/07/27 追記★
164
+
165
+
166
+
167
+ 事象としては変わらず「zipの中身が文字化けした状態でブラウザに表示されている」ままですが、
168
+
169
+ Controllerのソースを下記のように修正しました。また、`debug()`でresponseを出力した際のキャプチャ(文字化けzip含む)を下記に添付します。
170
+
171
+
172
+
173
+ - `app/controller/DownloadController.php`修正版(1)
174
+
175
+ ```php
176
+
177
+ public function download($camp_id = null, $login_id = null, $file_name = null){
178
+
179
+ $this->autoRender = false;
180
+
181
+ $bucket = Configure::read("csvExportBucketName");
182
+
183
+ $zip = $this->S3->downloadCSVFiles($bucket, $camp_id.'/'.$login_id.'/'.$file_name);
184
+
185
+
186
+
187
+ if (!empty($zip)) {
188
+
189
+ $file_path = WWW_ROOT.'storage'.DS.$file_name.'.zip';
190
+
191
+ $this->response->type('application/zip');
192
+
193
+ $this->response->type('content-Length: '.filesize($file_path));
194
+
195
+ $this->response->type('Content-Disposition: attachment');
196
+
197
+ $this->response->file($file_path, ['download' => true]);
198
+
199
+ debug($this->response);
200
+
201
+ }
202
+
203
+ }
204
+
205
+ ```
206
+
207
+
208
+
209
+
210
+
211
+ - ブラウザの状態
212
+
213
+ ![レスポンスの一部とzip文字化けの一部を抜粋](ef4213cf038e182b66775918c755ac9d.png)

1

バージョン情報の追加

2020/07/27 01:11

投稿

zvub1123
zvub1123

スコア230

test CHANGED
@@ -1 +1 @@
1
- [PHP]zipファイルのダウンロドができない
1
+ [PHP]zipファイルのダウンロドができない
test CHANGED
@@ -25,6 +25,14 @@
25
25
  `app/controller/DownloadController.php`にてzipファイルをローカルにダウンロード、としたいのですが、
26
26
 
27
27
  後者がうまくいかず、なぜか(おそらく該当のzipファイルが)ビュー上に文字化けした状態で表示されます。
28
+
29
+
30
+
31
+ ## 各種バージョン情報
32
+
33
+ CakePHP : 2.10.20
34
+
35
+ PHP : 7.2.31
28
36
 
29
37
 
30
38