[J2EE] Content-Disposition
一、前言
各位先進大家好,小弟最近在看良葛格的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
12/06 05:40, 2F
→
12/06 05:43, , 3F
12/06 05:43, 3F
→
12/06 05:48, , 4F
12/06 05:48, 4F
java 近期熱門文章
PTT數位生活區 即時熱門文章