簡體   English   中英

下載文件時文件名問題中的空白空間

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM