0
我有這樣的:如何獲得java servlet中的上傳文件名?
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
try{
sentfilename = printNames(request);
MultipartRequest multipartRequest = new MultipartRequest(request, ImageDirecoty, 1024*1024*5);
} catch(IOException e){
response.sendError(HttpServletResponse.SC_CONFLICT, "File limit has exceeded or it wasn't an actual image");
System.out.println(e.getMessage());
return;
}
}
public String printNames(HttpServletRequest request) throws IOException, ServletException{
for(Part part : request.getParts()){
Collection<String> headers = part.getHeaders("content-disposition");
if (headers == null)
continue;
for(String header : headers){
String filename = header.substring(header.indexOf("filename=") + 10 , header.length());
String result = filename.replace("\"", "");
return result;
}
}
return null;
}
基本上我上傳從客戶端一個簡單的文件,現在我需要的文件名了,成功地通過printNames
功能採取的請求數據和請求數據寫信給我filepath
,現在的問題是,正如你可以看到我的doPost() try
如果我把printNames
函數首先我可以得到文件名,但它不寫數據,如果我把MultipartRequest
首先我可以得到fileupload,但我沒有得到文件名。
希望不作任何混亂,在此先感謝
和你在哪裏調用'MultipartRequest()' – darees
用servlet的API 3.1,你可以簡單地註釋servlet類'@WebServlet ... @MultipartConfig( fileSizeThreshold = 16768, maxRequestSize = 10L * 1024 * 1024 , maxFileSize = 10L * 1024 * 1024 )' –
不知何故,這不是與我一起工作,我有必要使用'MultipartRequest()'本身,你有任何想法與'MultipartRequest() – darees