ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

Ajaxでファイルのダウンロード

予想していない方法でできた。

f:id:AJYA:20121129214810j:plain

photo credit: Kasaa via photopin cc

  

ことの発端

以前、

1.AjaxCSVファイル生成のプログラムを起動する。

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形式でデータを渡せることも確認した。

 

ダウンロードもできるようになったので、次はポーリング部分を作れば、全体の見通しが立つので、テストしながら調整していけそうだ。