ファイルのダウンロード アクションを指す Web フォームのリンクがあります。
public function downloadDataAction($data_id)
{
//get data from database and create a zip file ($fzip) with the data
$content = file_get_contents($fzip);
$filename = 'mydata_' . $data_id . '.zip';
$headers = array(
'Content-Type' => 'application/zip',
'Content-Disposition' => "attachment; filename=" . urlencode($filename),
);
return new Response($content, 200, $headers);
}
上記のアクションは期待どおりに機能します。指定された id のデータが存在する場合、zip ファイルがダウンロードされ、元の Web フォームは変更や更新なしでそのまま残ります。データベースにデータが見つからない場合、どのような応答が返されるかわかりません。理想的には、フラッシュメッセージを設定したいのですが、リフレッシュしないとフォームにフラッシュが表示されず、リンクが作成される前にユーザーが作成したエントリがあった場合、リフレッシュするとユーザーが作成したエントリが破棄されますクリックしました。私は何をすべきか?