使用FileFilter上传Vaadin文件

使用FileFilter上传Vaadin文件,vaadin,Vaadin,我使用的是Vaadin框架。我只需要上传PDF、JAR和ZIP格式的文件。我试过使用这个代码。这个代码也是我从堆栈溢出中得到的 public void uploadStarted(StartedEvent event) { // TODO Auto-generated method stub System.out.println("***Upload: uploadStarted()"); Arra

我使用的是Vaadin框架。我只需要上传PDF、JAR和ZIP格式的文件。我试过使用这个代码。这个代码也是我从堆栈溢出中得到的

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", "");

                    }
public void上载已启动(StartedEvent事件){
//TODO自动生成的方法存根
System.out.println(“***Upload:uploadStarted()”);
ArrayList allowedMimeTypes=新ArrayList();
allowedMimeTypes.add(“应用程序/java存档”);
allowedMimeTypes.add(“application/pdf”);
allowedMimeTypes.add(“应用程序/zip”);
字符串contentType=event.getMIMEType();
允许布尔值=false;
System.out.println(“”:contentType:
+内容类型);
对于(int i=0;i
这在上传PDf文件时有效,在上传Zip或Jar文件以及显示NULLPOINTER异常的任何其他文件时有效。
请帮帮我。

瓦丁有一个特别的上传组件,很容易使用。在《瓦丁书》中有一整章都与这个组件相关


在Vaadin 14中,在类
上传中有一种方法
设置AcceptedFileTypes

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

方法
setAcceptedFileTypes
元素处设置HTML属性
accept
,因此限制/过滤应用程序用户可以上载的内容。

请显示异常的完整堆栈跟踪欢迎使用堆栈溢出。这不是一种在此处提问的好方法。实际上,不清楚您的问题和疑问都是。请阅读,作为一个开始。这对我没有帮助。我需要过滤文件。你能调试你的代码并说出哪一行有NPE吗?谢谢你的回答。原因是:com.vaadin.ui.Upload$1.getOutputStream(Upload.java:1007)位于com.vaadin.terminal.gwt.server.AbstractCommunicationManager.streamToReceiver(AbstractCommunicationManager.java:562)…22more@mchinta你有没有得到任何解决方案,我在上传文件时遇到了类似的异常,在我的情况下,它是任何文件,无论是.png还是.pdf。