我正在处理一些要求,这些要求将导致从 J2EE Web 服务器下载任意 PDF 文件。名称可能如下所示:
Xxxxxxxxxxxxxxxxxx - Yyyyyyyyyy - Aaaaaaaaaaa - Bbbbbbbbb ccc Dddddddddddddd - abc1234560 - 2009-03-26 – 235959.pdf
现在我已经阅读了 RFC2183 中的几个部分:
http://www.ietf.org/rfc/rfc2183.txt
例如
一个短(长度 <= 78 个字符)参数值,仅包含非
tspecials' characters SHOULD be represented as a single
令牌'。一个短参数值,仅包含 ASCII 字符,但包括tspecials' characters, SHOULD be represented as
quoted-string'。超过 78 个字符或包含非 ASCII 字符的参数值必须按照 [RFC 2184] 中的规定进行编码。
等等等等。现在有数以百万计的事情会出错,如果我不通读所有这些 RFC……或者我选择一个处理此类 RFC 规范的库。Java有这样的东西吗?或者我是偏执狂,实际上只需将此标头写入输出流就足够了:
String filename = "\"" + filename.replace("\"", "\\\"") + "\"";
addHeader("Content-Disposition", "attachment; filename=" + filename);