wbstr / vaadin-multifileupload

12 stars 23 forks source link

Accept filter #28

Closed Arvidas1 closed 8 years ago

Arvidas1 commented 8 years ago

When I set accept filter as image/svg+xml or other it does not influence on file selection window.. Code example: UploadStateWindow window = new UploadStateWindow(); UploadFinishedHandler handler = new UploadFinishedHandler() { @Override public void handleFile(InputStream inputStream, String s, String s1, long l) {

        }
    };

    MultiFileUpload singleFileUpload = new MultiFileUpload(handler,window,false);

/ ArrayList mimeTypes = new ArrayList<>(); mimeTypes.add("image/svg+xml"); singleFileUpload.setAcceptedMimeTypes(mimeTypes); / singleFileUpload.setAcceptFilter("image/svg+xml"); singleFileUpload.setCaption("Single upload"); singleFileUpload.setPanelCaption("Single upload"); singleFileUpload.getSmartUpload().getAcceptFilter(); singleFileUpload.getSmartUpload().setUploadButtonCaptions("Upload file",""); applicationLayout.getContentLayout().addComponent(singleFileUpload);

juger89 commented 8 years ago

setAcceptFilter javadoc:

"Sets mime types that browser should let users upload. This check is done by the client side and not supported by all browsers. Some browser us the accept filter just as a initial filter for their file chooser dialog. Note that using this method does not invalidate need for server side checks. See https://developer.mozilla.org/en-US/docs/HTML/Element/Input"

You should use setAcceptedMimeTypes(List mimeTypes) for server side check.

Javadoc: "Sets valid mime types. See http://reference.sitepoint.com/html/mime-types-full @param mimeTypes Mime types should be accepted."

If the server side check fails, you should see a log entry with the mime type of the file uploaded. logger.log(Level.FINE, "Mime type is not valid! File name: {0}, Mime type: {1}"