予想していない方法でできた。
photo credit: Kasaa via photopin cc
ことの発端
以前、
2.CSVファイルが生成されるまでポーリングする。
3.生成されたので、Ajaxでファイルダウンロードを呼び出して、ダウンロードする。
というプログラムを作るために、1.の一部のことをブログに書いた。
PHP:非同期処理の方法を調べた - ソフトウェア開発者の日常
1.の部分はほぼできるようになったので、2.に着手しようかと考えたが、3.のダウンロードの方法がわかっていなくてリスクが高く感じたので、3.のダウンロードの方法を調べ始めた。
調査とテストの結果
調べた結果、JavaScriptのlocation.hrefで、ダウンロードするプログラムにリダイレクトすれば、ダウンロードができると書かれているサイトが複数あったので、
location.href = "http://example.com/dowonload.php";
として、download.phpは、CSVファイルを読み出して出力するようにしたら、ダウンロードできるようになった。
リダイレクト先がPHPのプログラムなので、
location.href = "http://example.com/dowonload.php?file_name=abc.csv";
とすれば、GET形式でデータを渡せることも確認した。
ダウンロードもできるようになったので、次はポーリング部分を作れば、全体の見通しが立つので、テストしながら調整していけそうだ。