*.doc *.png *.xls のようなファイルをワニス キャッシュとして使用します。
キャッシュからファイルを取得している間はうまく機能しますが、* .xls.
私のURIはのようなもの/attachment/show?fileId=ewer232ewe2121eeddsd
です。キャッシュから .xls ファイルを要求すると、拡張子のない名前のファイルが返されますshow
。
私のサーバーコードは次のとおりです。
if (StringUtil.null2Trim(attachment.getExtension()).equals("doc")
|| StringUtil.null2Trim(attachment.getExtension()).equals("docx")
|| StringUtil.null2Trim(attachment.getExtension()).equals("xlsx")
|| StringUtil.null2Trim(attachment.getExtension()).equals("xls")) {
response.setHeader("Content-Disposition", "attachment; filename=\""
+ StringUtil.gbk2Iso(attachment.getName()) + "\"");
if (StringUtil.null2Trim(attachment.getExtension()).indexOf("doc") != -1) {
response.setContentType("application/msword");
}
if (StringUtil.null2Trim(attachment.getExtension()).indexOf("xls") != -1) {
response.setContentType("application/vnd.ms-excel");
}
} else {
if (StringUtil.null2Trim(attachment.getExtension()).equals("jpg")) {
response.setContentType("image/jpeg");
} else if (StringUtil.null2Trim(attachment.getExtension()).equals("png")) {
response.setContentType("image/x-png");
} else {
response.setContentType("image/" + attachment.getExtension());
}
}
私の質問は、のような正しいファイルのフルネームを取得できないのはなぜですかattachment.getName()+".xls"
、そしてそれを解決する方法です。
PS: varnish(vcl) で ContentType を設定する方法はありますか?