我使用两个jars commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar来上传我的表单中的文件。我可以上传文件,但我的要求是仅上传.jpg / .jpeg文件。以下是我的代码。问题是如果我将pdf文件的扩展名更改为jpg文件,它就会上传。
目前我正在使用该文件的内容类型进行检查,更改的pdf(进入jpg)的内容类型也是image / 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");
}
答案 0 :(得分:0)
当你在servlet上执行它时已经太晚了,它已经上传了。您所能做的就是检查名称是否以.jpg等结尾。为什么不使用<input type="file" accept="image/*">