teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

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

2020/07/27 01:12

投稿

zvub1123
zvub1123

スコア230

title CHANGED
File without changes
body CHANGED
@@ -77,4 +77,31 @@
77
77
  ご助力いただけると幸いです。
78
78
 
79
79
  指摘・修正事項・不足しているソースなどあればお申しつけください。
80
- ご回答お待ちしております。よろしくお願いします!
80
+ ご回答お待ちしております。よろしくお願いします!
81
+
82
+ 2020/07/27 追記★
83
+
84
+ 事象としては変わらず「zipの中身が文字化けした状態でブラウザに表示されている」ままですが、
85
+ Controllerのソースを下記のように修正しました。また、`debug()`でresponseを出力した際のキャプチャ(文字化けzip含む)を下記に添付します。
86
+
87
+ - `app/controller/DownloadController.php`修正版(1)
88
+ ```php
89
+ public function download($camp_id = null, $login_id = null, $file_name = null){
90
+ $this->autoRender = false;
91
+ $bucket = Configure::read("csvExportBucketName");
92
+ $zip = $this->S3->downloadCSVFiles($bucket, $camp_id.'/'.$login_id.'/'.$file_name);
93
+
94
+ if (!empty($zip)) {
95
+ $file_path = WWW_ROOT.'storage'.DS.$file_name.'.zip';
96
+ $this->response->type('application/zip');
97
+ $this->response->type('content-Length: '.filesize($file_path));
98
+ $this->response->type('Content-Disposition: attachment');
99
+ $this->response->file($file_path, ['download' => true]);
100
+ debug($this->response);
101
+ }
102
+ }
103
+ ```
104
+
105
+
106
+ - ブラウザの状態
107
+ ![レスポンスの一部とzip文字化けの一部を抜粋](ef4213cf038e182b66775918c755ac9d.png)

1

バージョン情報の追加

2020/07/27 01:11

投稿

zvub1123
zvub1123

スコア230

title CHANGED
@@ -1,1 +1,1 @@
1
- [PHP]zipファイルのダウンロドができない
1
+ [PHP]zipファイルのダウンロドができない
body CHANGED
@@ -13,6 +13,10 @@
13
13
  `app/controller/DownloadController.php`にてzipファイルをローカルにダウンロード、としたいのですが、
14
14
  後者がうまくいかず、なぜか(おそらく該当のzipファイルが)ビュー上に文字化けした状態で表示されます。
15
15
 
16
+ ## 各種バージョン情報
17
+ CakePHP : 2.10.20
18
+ PHP : 7.2.31
19
+
16
20
  ### 該当ソース群(抜粋)
17
21
 
18
22