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

質問編集履歴

3

エラー情報の追加

2018/12/18 09:09

投稿

lovelydai
lovelydai

スコア38

title CHANGED
File without changes
body CHANGED
@@ -120,4 +120,55 @@
120
120
  $writer->save('php://output');
121
121
  exit;
122
122
  }
123
+ ```
124
+
125
+ 追加に追加:$writer->save('php://output'); にすると、やはりヘッダーについてエラーがでました。
126
+ ```ERROR
127
+ 2018-12-18 17:43:32 Warning: Warning (512): Unable to emit headers. Headers sent in file=D:\Bitnami\wampstack-7.1.7-0\apache2\htdocs\djks\trunk\vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Writer\Xlsx.php line=404 in [D:\Bitnami\wampstack-7.1.7-0\apache2\htdocs\djks\trunk\vendor\cakephp\cakephp\src\Http\ResponseEmitter.php, line 48]
128
+ Request URL: /sheets/sectionsheet
129
+ Referer URL: http://localhost:8765/sheets/sectionsheet
130
+ Trace:
131
+ Cake\Error\BaseErrorHandler::handleError() - CORE\src\Error\BaseErrorHandler.php, line 153
132
+ Cake\Http\ResponseEmitter::emit() - CORE\src\Http\ResponseEmitter.php, line 48
133
+ Cake\Http\Server::emit() - CORE\src\Http\Server.php, line 106
134
+ [main] - ROOT\webroot\index.php, line 40
135
+
136
+
137
+
138
+ 2018-12-18 17:43:32 Warning: Warning (2): Cannot modify header information - headers already sent by (output started at D:\Bitnami\wampstack-7.1.7-0\apache2\htdocs\djks\trunk\vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Writer\Xlsx.php:404) in [D:\Bitnami\wampstack-7.1.7-0\apache2\htdocs\djks\trunk\vendor\cakephp\cakephp\src\Http\ResponseEmitter.php, line 148]
139
+ Request URL: /sheets/sectionsheet
140
+ Referer URL: http://localhost:8765/sheets/sectionsheet
141
+ Trace:
142
+ Cake\Error\BaseErrorHandler::handleError() - CORE\src\Error\BaseErrorHandler.php, line 153
143
+ header - [internal], line ??
144
+ Cake\Http\ResponseEmitter::emitStatusLine() - CORE\src\Http\ResponseEmitter.php, line 148
145
+ Cake\Http\ResponseEmitter::emit() - CORE\src\Http\ResponseEmitter.php, line 54
146
+ Cake\Http\Server::emit() - CORE\src\Http\Server.php, line 106
147
+ [main] - ROOT\webroot\index.php, line 40
148
+
149
+
150
+
151
+ 2018-12-18 17:43:32 Warning: Warning (2): Cannot modify header information - headers already sent by (output started at D:\Bitnami\wampstack-7.1.7-0\apache2\htdocs\djks\trunk\vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Writer\Xlsx.php:404) in [D:\Bitnami\wampstack-7.1.7-0\apache2\htdocs\djks\trunk\vendor\cakephp\cakephp\src\Http\ResponseEmitter.php, line 181]
152
+ Request URL: /sheets/sectionsheet
153
+ Referer URL: http://localhost:8765/sheets/sectionsheet
154
+ Trace:
155
+ Cake\Error\BaseErrorHandler::handleError() - CORE\src\Error\BaseErrorHandler.php, line 153
156
+ header - [internal], line ??
157
+ Cake\Http\ResponseEmitter::emitHeaders() - CORE\src\Http\ResponseEmitter.php, line 181
158
+ Cake\Http\ResponseEmitter::emit() - CORE\src\Http\ResponseEmitter.php, line 55
159
+ Cake\Http\Server::emit() - CORE\src\Http\Server.php, line 106
160
+ [main] - ROOT\webroot\index.php, line 40
161
+
162
+
163
+
164
+ 2018-12-18 17:43:32 Warning: Warning (2): Cannot modify header information - headers already sent by (output started at D:\Bitnami\wampstack-7.1.7-0\apache2\htdocs\djks\trunk\vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Writer\Xlsx.php:404) in [D:\Bitnami\wampstack-7.1.7-0\apache2\htdocs\djks\trunk\vendor\cakephp\cakephp\src\Http\ResponseEmitter.php, line 181]
165
+ Request URL: /sheets/sectionsheet
166
+ Referer URL: http://localhost:8765/sheets/sectionsheet
167
+ Trace:
168
+ Cake\Error\BaseErrorHandler::handleError() - CORE\src\Error\BaseErrorHandler.php, line 153
169
+ header - [internal], line ??
170
+ Cake\Http\ResponseEmitter::emitHeaders() - CORE\src\Http\ResponseEmitter.php, line 181
171
+ Cake\Http\ResponseEmitter::emit() - CORE\src\Http\ResponseEmitter.php, line 55
172
+ Cake\Http\Server::emit() - CORE\src\Http\Server.php, line 106
173
+ [main] - ROOT\webroot\index.php, line 40
123
174
  ```

2

追加確認項目の追加

2018/12/18 09:09

投稿

lovelydai
lovelydai

スコア38

title CHANGED
File without changes
body CHANGED
@@ -90,4 +90,34 @@
90
90
  ```
91
91
 
92
92
  追加:リスポンスされた時のHeader情報は以下のようになっています。(ファイル名は、日本語になっています)
93
- ![イメージ説明](a8123c3eb80a04950d11842712149835.png)
93
+ ![イメージ説明](a8123c3eb80a04950d11842712149835.png)
94
+
95
+ また追加:以下のように、出力部だけ別の関数にし、ブラウザーのURLに /sheets/sectionsheetouput と入力すると、クライアントに落ちることまで確認しました。
96
+ ```PHP
97
+ public function sectionsheetoutput()
98
+ {
99
+ $this->autoRender = false;
100
+ $this->viewBuilder()->setLayout(false);
101
+
102
+ // Excel出力するためのファイル名とフォルダー名を設定する。
103
+ date_default_timezone_set('Asia/Tokyo');
104
+ $outputDate = date('Ymd_His');
105
+ $outputFilename = $outputDate . "_test.xlsx";
106
+
107
+ $spreadsheet = new Spreadsheet();
108
+
109
+ $spreadsheet->setActiveSheetIndex(0)
110
+ ->setCellValue('A1', '日本語_japanese');
111
+
112
+ $spreadsheet->getActiveSheet()->setTitle('Simple');
113
+ $spreadsheet->setActiveSheetIndex(0);
114
+
115
+ // header('Content-Type: application/vnd.ms-excel');
116
+ header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
117
+ header('Content-Disposition: attachment;filename="'.$outputFilename.'"');
118
+ header('Cache-Control: max-age=0');
119
+ $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
120
+ $writer->save('php://output');
121
+ exit;
122
+ }
123
+ ```

1

図の追加(Header情報)

2018/12/18 07:56

投稿

lovelydai
lovelydai

スコア38

title CHANGED
File without changes
body CHANGED
@@ -87,4 +87,7 @@
87
87
  alert('失敗');
88
88
  location.reload(
89
89
  });
90
- ```
90
+ ```
91
+
92
+ 追加:リスポンスされた時のHeader情報は以下のようになっています。(ファイル名は、日本語になっています)
93
+ ![イメージ説明](a8123c3eb80a04950d11842712149835.png)