回答編集履歴
1
追記
test
CHANGED
@@ -1,3 +1,57 @@
|
|
1
|
+
追記
|
2
|
+
|
3
|
+
---
|
4
|
+
|
5
|
+
質問を読み誤っていたようなので追記します。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
- 発生している問題
|
10
|
+
|
11
|
+
発生している問題は、おそらくHTTPレスポンスヘッダが正常に出力されていないか、HTTPレスポンスヘッダ出力の前に何らかの出力(例えばエラーメッセージなど)があるため
|
12
|
+
|
13
|
+
```PHP
|
14
|
+
|
15
|
+
header('Content-Type: application/octet-stream');
|
16
|
+
|
17
|
+
header("Content-Disposition: attachment; filename={$file_name}");
|
18
|
+
|
19
|
+
header('Content-Transfer-Encoding: binary');
|
20
|
+
|
21
|
+
```
|
22
|
+
|
23
|
+
で出力しているHTTPレスポンスヘッダが正常に動作していない
|
24
|
+
|
25
|
+
と思われます。
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
- 出力の確認
|
30
|
+
|
31
|
+
1. 開発者ツール(F12)でHTTPレスポンスヘッダを確認し、成功時と失敗時の差を比較する
|
32
|
+
|
33
|
+
2. 失敗した時に右クリック→ソースを表示でHTMLソースを表示して先頭の方にエラー等が表示されていないか確認する(文字化けしている時は文字コードを変えて確認してみる)
|
34
|
+
|
35
|
+
3. attercopさんの回答にある`header()を先頭に持ってくる`を試してみる(その場合、エラーメッセージ交じりのCSVがダウンロードできるはず)
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
- 解決方法
|
40
|
+
|
41
|
+
エラーメッセージが出ているのであれば、その原因を修正する
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
以下、追記前の回答
|
50
|
+
|
51
|
+
---
|
52
|
+
|
53
|
+
|
54
|
+
|
1
55
|
データの流れを一つずつデバッグしていくしか無いですが、
|
2
56
|
|
3
57
|
|