2013.
07.
29
01:08:36
まぁPHPを使ったファイルのダウンロードなんていう奴は、
ヘッダをゴスっ!と書き出して中身をペッと吐き出せば良いので難しいところは無いのですが
「FuelPHPさん用の書き方があるの(--?」と疑問を覚えたので調べてみました。
そして調べてみた結果……普通にPHPで書くファイルダウンロード処理とほぼ同じでした(--ゞ
例えばこんなコードでOKφ(--)
中身のデータはヒアドキュメントで設定しても良いしφ(--)
普通にループしてCSV出力とかもできますφ(--)
自分で書いておいてなんですが、わざわざ取り上げる必要無かったカモ(--ゞ
ヘッダをゴスっ!と書き出して中身をペッと吐き出せば良いので難しいところは無いのですが
「FuelPHPさん用の書き方があるの(--?」と疑問を覚えたので調べてみました。
そして調べてみた結果……普通にPHPで書くファイルダウンロード処理とほぼ同じでした(--ゞ
例えばこんなコードでOKφ(--)
public function action_test01()
{
$downloadFileName = "text.txt";
$res = Response::forge();
$res->set_header('Content-Type', 'application/octet-stream');
$res->set_header('Content-Disposition', 'attachment; filename="' . $downloadFileName . '"');
$res->send(true);
echo "ファイルの中身だよ~";
}
{
$downloadFileName = "text.txt";
$res = Response::forge();
$res->set_header('Content-Type', 'application/octet-stream');
$res->set_header('Content-Disposition', 'attachment; filename="' . $downloadFileName . '"');
$res->send(true);
echo "ファイルの中身だよ~";
}
中身のデータはヒアドキュメントで設定しても良いしφ(--)
public function action_test02()
{
$downloadFileName = "text2.csv";
$data = <<<DATA
"a","b","c"
"あ","い","う"
DATA;
$res = Response::forge();
$res->set_header('Content-Type', 'application/octet-stream');
$res->set_header('Content-Disposition', 'attachment; filename="' . $downloadFileName . '"');
$res->send(true);
echo $data;
}
{
$downloadFileName = "text2.csv";
$data = <<<DATA
"a","b","c"
"あ","い","う"
DATA;
$res = Response::forge();
$res->set_header('Content-Type', 'application/octet-stream');
$res->set_header('Content-Disposition', 'attachment; filename="' . $downloadFileName . '"');
$res->send(true);
echo $data;
}
普通にループしてCSV出力とかもできますφ(--)
public function action_test03()
{
$downloadFileName = "text3.csv";
$res = Response::forge();
$res->set_header('Content-Type', 'application/octet-stream');
$res->set_header('Content-Disposition', 'attachment; filename="' . $downloadFileName . '"');
$res->send(true);
for($i = 0; $i < 10; $i++){
echo $i . "," . ($i + 1) . "\n";
}
}
{
$downloadFileName = "text3.csv";
$res = Response::forge();
$res->set_header('Content-Type', 'application/octet-stream');
$res->set_header('Content-Disposition', 'attachment; filename="' . $downloadFileName . '"');
$res->send(true);
for($i = 0; $i < 10; $i++){
echo $i . "," . ($i + 1) . "\n";
}
}
自分で書いておいてなんですが、わざわざ取り上げる必要無かったカモ(--ゞ