5

コントローラアクションの1つが、ファイルをユーザーに返します。ファイルの種類に関係なく、ユーザーにダウンロード(開く/保存)ダイアログが表示されるようにしたいと思います。これは、ファイルタイプが.doc、.docx、.xlsxなどの場合は正常に機能しますが、ファイルが.txt、.xps、.pdf(場合によっては)、または.htmlの場合は、ブラウザーで開きます。

ファイルがブラウザで開かないようにし、ユーザーが現在のページから移動せずに別のウィンドウでのみ開くことを許可する方法はありますか?

ファイルのリクエストは、jQueryのを使用して行われます$.ajax({})

関連:AJAX呼び出しが応答文字列としてファイルの同意を受け取るのではなく、ブラウザーに要求を処理させてポップアップを表示させることは、この回答によって説明されます、この質問は、ブラウザーに特定の方法でファイルを一度処理させることを解決します受信します。

4

1 に答える 1

5

クライアント側のコマンドや設定でこれを行うことはできないと思います。application/octet-streamすべてのファイルのコンテンツタイプを返すように、サーバーで何かを行う必要があります。それ以外の場合、ブラウザは受信ファイルを確認し、独自のルールと機能に基づいてファイルを処理するかどうかを決定します。

サーバーでこれを実行できる場合は、"Content-Disposition"ヘッダーを次のように設定してみてください"attachment; filename=whatever.xyz"

于 2011-10-05T13:59:53.253 に答える