2016-12-21 1 views
0

私は、ユーザーが自分のWebサイトにダウンロードするためのExcel(.xlsx)ファイルを生成するコードを書きました。私はSymfony2を使用していますが、私がこの問題を抱えている理由ではないと思います。ここに私のコードの抜粋です:私は新しいページを開いて、ブラウザにこのダウンロード用のリンクを貼り付ける場合は<a>要素でPHPExcelのダウンロード作業を行うには?

$filename = "cmm_payment_report.xlsx"; 

header('Content-Type: application/vnd.ms-excel'); 
header(sprintf('Content-Disposition: attachment; filename="%s"', $filename)); 
header("Cache-Control: max-age=0"); 

$objWriter = \PHPExcel_IOFactory::createWriter($excel, 'Excel2007'); 
$objWriter->save("php://output"); 

、それは通常通り動作し、私は、ファイルをダウンロードすることができますよ。しかし、私はそうのような小枝テンプレートにリンクを置く場合:

<a href="{{ path('report_payment_excel', {payPeriod: app.request.get('pay-period')}) }}" target="_blank"> 
    <button>Download as XLS</button> 
</a> 

それは動作しません。私はリンクをクリックし、ブラウザはロード中であることを示しますが、ロードが停止すると何も起こりません。新しいタブで右クリックして>リンクを開くと、それは機能します。 target="_blank"を追加しても問題は解決されません。

答えて

1

私の<button>Download as XLS</button>要素が<form>要素の内部に含まれていたため、リンクをたどる代わりに誤ってフォームを送信していたという問題がありました。

+0

うれしいですね。 symfonyフレームワークを使用している場合、レスポンスオブジェクトを使用するためにビットをリファクタリングすることを検討することができます。 – Cerad

関連する問題