使用FileFilter上传Vaadin文件

时间:2015-03-13 07:30:22

标签: vaadin

我正在使用Vaadin Framework。我需要以PDF,JAR和EX的格式上传文件。仅限ZIP。我试过这个代码。这个代码也是我从STACK OVER FLOW获得的。

public void uploadStarted(StartedEvent event) {
                // TODO Auto-generated method stub
                System.out.println("***Upload: uploadStarted()");

                ArrayList<String> allowedMimeTypes = new ArrayList<String>();
                allowedMimeTypes.add("application/java-archive");
                allowedMimeTypes.add("application/pdf");
                allowedMimeTypes.add("application/zip");
                String contentType = event.getMIMEType();
                boolean allowed = false;
                System.out.println(":::::::::::::contentType::::::"
                        + contentType);
                for (int i = 0; i < allowedMimeTypes.size(); i++) {

                    if (contentType.equalsIgnoreCase(allowedMimeTypes.get(i))) {

                        allowed = true;
                        break;
                    }

                }
                try {
                    if (allowed) {
                        System.out.println("boolean value:::::::allowed"
                                + allowed);
                        finalDeedUpload.setReceiver(finalDeedFileUploadHandler);
                        finalDeedUpload.addListener(finalDeedFileUploadHandler);

                    } else {

                        showWarningNotification(
                                "Error:Please Upload File in Given Format", "");

                    }

这适用于上传其工作的PDf文件,同时上传Zip OR Jar文件以及显示NULLPOINTER EXCEPTION的任何其他文件。 请帮帮我。

2 个答案:

答案 0 :(得分:1)

Vaadin有一个易于使用的特殊上传组件。 Vaadin书中有一整章与这个组成部分有关。

https://vaadin.com/book/-/page/components.upload.html

答案 1 :(得分:0)

在 Vaadin 14 中,类 setAcceptedFileTypes 中有一个方法 Upload

MemoryBuffer buffer = new MemoryBuffer();
Upload upload = new Upload(buffer);
upload.setAcceptedFileTypes(new String[]{"application/zip", "application/pdf", "application/java-archive"});

方法 setAcceptedFileTypesaccept 元素处设置 HTML 属性 <input type="file">,因此限制/过滤应用程序用户可以上传的内容。