7

私は Symfony2 Framework を使用し、次のコードを使用して xml ファイルをエクスポートします。

$response->setStatusCode(200);
$response->headers->set('Content-Type', 'application/xml');
$response->headers->set('Content-Description', 'Submissions Export');
$response->headers->set('Content-Disposition', 'attachment; filename="' . $filename .'"');
$response->headers->set('Content-Transfer-Encoding', 'binary');
$response->headers->set('Pragma', 'no-cache');
$response->headers->set('Expires', '0');

「Content-Transfer-Encoding」または「Pragma」を削除するか、「Content-Type」と「Content-Disposition」を除くすべてを削除するかは問題ではありません。Chrome での結果は常に、"filename-, attachment" (" なし) です。Firefox では、これは正常に機能します。

たとえば、home.xml というファイルがある場合、Firefox は home.xml をダウンロードしますが、Chrome は home.xml-, という添付ファイルを提供します。

4

2 に答える 2

0

この投稿にアンサーを追加したい多くの機能しないものを見つけたため、ZENDでも同じ問題が発生しました。それを解決するのに時間がかかったので、より多くのユーザーと開発者が私がどのように解決したかを知りたいと思った. これを fopen 呼び出しの直前に追加します。

header('Content-Disposition: attachment; filename='.time().'.csv');

私のために問題を解決しました。コンテキストスイッチを使用する前はバグがありましたが、今では魅力的に機能します。以前のコンテンツ ディスポジション ヘッダーを削除することを忘れないでください。これにより、ダブル ヘッダー エラーが発生する可能性があります。

于 2016-02-17T15:17:38.340 に答える