[J2EE] Content-Disposition

看板java作者 (無限燃燒)時間11年前 (2013/12/05 22:04), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
一、前言 各位先進大家好,小弟最近在看良葛格的Servlet & JSP教學手冊。 跟著範例做的時候遇到了一個問題,然而始終不了解問題發生的原因。 於是Google了以下的關鍵字: 1. Content-Disposition 2. Part.getHeader 3. header; filename; 都無法找到問題的解答,於是在此PO文向各位先進請教。 二、作業環境 Windows 7 64-bit JDK1.70_45 Apache Tomcat 7.0 Eclipse Indigo 三、問題陳述 在書本第三章的部份提到了可以用java.servlet.http.Part的getHeader方法 處理檔案上傳的需求,然而getHeader方法傳回的內容中,filename的部份 始終都是傳回絕對路徑... 例:filename="C:/downloads/test.jpg" 而非filename="test.jpg" 而在另一臺同樣作業環境的主機下測試得到的結果卻是相反的... 四、程式碼 1. HTML部份 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <form action="upload2.do" method="post" enctype="multipart/form-data"> 上傳相片:<input type="file" name="photo" /><br><br> <input type="submit" value="上傳" name="upload" /> </form> </body> </html> 2. Servlet部份 package test; import java.io.*; ... ... import部份省略以免佔太多版面 @MultipartConfig(location="C:/workspace") @WebServlet("/upload2.do") public class UploadServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); Part part=request.getPart("photo"); String fileName=getFileName(part); part.write(fileName); } private String getFileName(Part part) { String header=part.getHeader("Content-Disposition"); String fileName=header.substring( header.indexOf("filename=\"")+10, header.lastIndexOf("\"")); return fileName; } } 程式碼的部份都是照抄書本上的 想請問各位先進Content-Disposition的內容中 filename的部份是否會因為eclipse、瀏覽器…或是其他因素的設定不同 而造成以上的結果呢? 以上 麻煩各位先進提供說明或是關鍵字 若有說明不夠詳細的部份 還請各位不吝指教 謝謝<(__ __)> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.182.35.28

12/05 22:47, , 1F
跟瀏覽器實作有關。只有檔名(沒路徑)比較合理。
12/05 22:47, 1F

12/06 05:40, , 2F
可是我兩台電腦都是用Eclipse的internal web browser @@...
12/06 05:40, 2F

12/06 05:43, , 3F
出現不合理狀況的那台要設成ie才會只有檔案,firefox就會
12/06 05:43, 3F

12/06 05:48, , 4F
發生問題 謝謝sbrihsieh大!
12/06 05:48, 4F
文章代碼(AID): #1Ie8W4JH (java)
文章代碼(AID): #1Ie8W4JH (java)