天天看點

Firefox下載下傳servlet檔案時,檔案名截斷問題

servlet書寫了檔案下載下傳程式,通過Firefox浏覽器去下載下傳時,出現

Firefox下載下傳servlet檔案時,檔案名截斷問題

下載下傳下來後,發現

Firefox下載下傳servlet檔案時,檔案名截斷問題

檔案大小都沒問題,但是檔案名稱隻是下載下傳檔案名稱中第一個空格前面的部分,後面部分不知所蹤。

代碼中寫的檔案名稱為 Java Persistence with MyBatis 3.pdf,而非 下載下傳框出現的 Java 

String filename = "Java Persistence with MyBatis 3.pdf";
File file = new File(dataDirectory, filename);
if (file.exists()) {
     response.setContentType("application/pdf");
     response.addHeader("Content-Disposition", 
           "attachment; filename=" + filename);
           

究其原因,原來是檔案名稱中有空格,Firefox在解析時,按照空格将檔案名截斷了

将代碼修改為

String filename = "Java Persistence with MyBatis 3.pdf";
File file = new File(dataDirectory, filename);
if (file.exists()) {
     response.setContentType("application/pdf");
     response.addHeader("Content-Disposition", 
           "attachment; filename=\"" + filename + "\"");
           

再下載下傳時,

Firefox下載下傳servlet檔案時,檔案名截斷問題

OK了,問題完美解決。