[英]Empty space in filename issue while downloading file
以下java代碼用於通過Web應用程序下載請求的日志文件:
protected HttpServletResponse response;
....
response.setContentType("application/octet-stream");
String filename = OrgName + ".log";
response.setHeader("Content-Disposition", "attachment; filename= " + filename);
OutputStream os = response.getOutputStream();
os.write(getFile());
os.close();
當OrgName
包含像“Xyz Pvt Ltd”這樣的空間時出現問題,在這種情況下,文件將以名稱“Xyz”而不是“Xyz Pvt Ltd.log”下載。第一個空格后的名稱部分將被忽略。 請注意,文件正確下載,只是名稱沒有正確顯示。 有什么我做錯了嗎? 還是標准行為?
環境: Struts 2,Jboss 5.1.0,Mozilla Firefox 3.5.3
我想我找到了你的問題。 只需將文件名字符串設置為quoted
response.setHeader("Content-Disposition","attachment; filename=\"" + filename + "\"");
這應該可以解決您的問題。
我認為你必須使用空間編碼你可以看看apache base64編碼器,我記得空格被編碼為%20%,因此在解碼時你可以用空格檢索文件名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.