53

私はこのコードを持っています:

resp.addHeader("Content-Disposition", "inline; filename=" + fileName);

ファイル名が「a_b_c.doc」または「abc.doc」の場合、ダウンロードしたファイル名が正しく表示されます。ただし、ファイル名が「abc.doc」の場合、ダウンロードされるファイル名は「a」のみとなります。

どうすればこれを解決できますか?

4

4 に答える 4

85

引用符を使用:

resp.addHeader("Content-Disposition", "inline; filename=\"" + fileName + "\"");
于 2013-09-05T10:50:57.643 に答える
15

HTTP 標準に従って、文字列を二重引用符で囲み、単一のバックスラッシュを前に付けて、引用符またはバックスラッシュをエスケープします。

Content-Disposition: attachment; filename="Very \"interesting\" file \\ files.txt"

これにより、名前を付けて保存するように求められますVery "interesting" file \ files.txt。バックスラッシュの存在はフォルダーを示唆するものではなく、バックスラッシュがファイル名の一部であることを示唆することに注意してください (これは Linux やその他のプラットフォームでは完全に有効ですが、Windows では有効ではありません)。

于 2016-07-12T09:10:00.567 に答える
0

ファイル名を引用するとうまくいきますchr(34)

resp.addHeader("Content-Disposition", "inline; filename=" + chr(34) + fileName + chr(34));
于 2015-07-29T18:45:45.943 に答える