上传文件时进行文件验证

时间:2014-05-21 08:53:23

标签: java file-upload

我使用两个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");
        }

1 个答案:

答案 0 :(得分:0)

当你在servlet上执行它时已经太晚了,它已经上传了。您所能做的就是检查名称是否以.jpg等结尾。为什么不使用<input type="file" accept="image/*">

相关问题