2012-03-06 13 views
2

私は多少の曖昧な問題を抱えていますが、私は説明するために最善を尽くします。ExcelがIEでダウンロード用のファイルを開こうとしています

私たちはSpringMVCを使ってマップされたURLを持っているので、POSTリクエストが行われたときにダウンロードが開始されるようになっています。例えば、

POST /request/bobby.html {POST variables:id=5} 

の要求は、問題はIEで、これを実行すると、あなたの[開く]または[名前を付けて保存のオプションを与えることであるID 5に関連したCSVファイルのダウンロードをトリガーします。 [開く]を選択すると、MS Excelで意図したとおりにCSVファイルが開きますが、一時ファイルの名前はbobby.htmlになります。ユーザーがExcelを開いたままにして別のID(たとえば6)を読み込もうとすると、フォーカスはExcelに変わりますが、依然としてbobby.htmlを要求しているため、ファイルは更新されません。同じ名前の新しいファイルを開く前に、Excelでファイルを閉じる必要がありますが、古いファイルを閉じるようにユーザーに指示するメッセージはありません。

理想的にはファイル名を変更したいが、他のアプリケーションが同じコンテナ内で他の拡張機能を実行しているため、使用されているSpringサーブレットは* .htmlファイルにのみマップされている。

私はちょうどそれがエクセル/ IEに異なる見えるように要求にUUIDを追加しようとしている、それがある程度働いていた...

POST /request/bobby.html?uuid=<uuid> {POST variables:id=6} 

は、それがIEに異なって見える作ったが、エクセル、まだ基本リクエストをファイル名として保持します。これは警告を許可しましたが、ファイル名が "bobby.html"であり、別のものを開くことができないことをユーザーに知らせることは、警告なしの場合よりも混乱する可能性があります。

POST /request/bobby.html/<uuid> {POST variables:id=6} 

どのようにこの作品を作るために、任意のアイデア:

は、私はまた、最後に何かに追加しようとしましたか?私はこのタイプのものがSpringMVCで実行可能であることを知っていますが、サーブレットのマッピングではそれを動作させる方法がありますか?

ありがとうございます。

答えて

0

私はついにこれを解明しました。ファイル名とは関係ありません。応答ヘッダーContent-Typeapplication/vnd.ms-excelの代わりにapplication/octet-streamに変更しました。

0

/request/bobby_{uuid}.htmlのようなマッピングを試しましたか?そうすれば、毎回ファイル名が一意になります。次に、uuid変数を無視することができます。

私はこれを試したことはありません...ちょうど狂った考え。

+0

これとその変形はうまくいかないようです。 – Andy

関連する問題