0
我使用兩個jar commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar上傳我的表單中的文件。我可以上傳文件,但我的要求是隻上傳.jpg/.jpeg文件。以下是我的代碼。問題是,如果我將pdf文件的擴展名更改爲jpg文件,它會上傳。上傳文件時進行文件驗證
目前我正在使用文件的內容類型對其進行檢查,更改後的pdf的內容類型(轉換爲jpg)也是圖像/ jpeg。我無法驗證它。請幫忙
if (ServletFileUpload.isMultipartContent(request)) {
try {
List<FileItem> multiparts = new ServletFileUpload(
new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : multiparts) {
if (!item.isFormField()) {
filename = new File(item.getName()).getName();
content = item.getContentType();
System.out.println("content type: " + content);
System.out.println("name: " + filename);
sizeInBytes = item.getSize();
item.write(new File(UPLOAD_DIRECTORY + File.separator + filename));
}
}
if (!content.contains("jpeg")) {
System.out.println("Please upload jpeg file");
} else {
// fupload = true;
}
} else {
response.sendRedirect("upload.jsp");
}
但是當我將pdf文件重命名爲jpg,例如a.pdf到a.jpg時,代碼接受該文件。 – anonymous
'accept ='image/jpeg'有什麼問題。也看看http://stackoverflow.com/questions/51438/getting-a-files-mime-type-in-java –
如果我把一個pdf文件重命名爲jpg,「accept ='image/jpeg'」接受該pdf文件,這是錯誤的,因爲它是一種攻擊。 – anonymous