Note that there are some explanatory texts on larger screens.

plurals
  1. POInterrupt file upload when some condition is not true
    primarykey
    data
    text
    <p>I want to implement this: while uploading a file check file extension if it's not .zip, the upload will be interrupted and a message is showed to the user so i wrote this:</p> <pre><code>// Implement both receiver that saves upload in a file and // listener for successful upload class ReportUploader implements Receiver, SucceededListener { public File file; public OutputStream receiveUpload(String filename, String mimeType) { // Create upload stream FileOutputStream fos = null; // Stream to write to String userHome = System.getProperty("user.home"); String ext = filename.substring(filename.lastIndexOf('.')); System.out.println("+++++++++++&gt;" + ext); if (!ext.equals(".zip")) { Notification.show("Could not upload file", Notification.TYPE_ERROR_MESSAGE); return null; } try { file = new File(userHome + "/uploads/report/" + filename); fos = new FileOutputStream(file); } catch (final java.io.FileNotFoundException e) { Notification.show("Could not open file", e.getMessage(), Notification.TYPE_ERROR_MESSAGE); return null; } return fos; } public void uploadSucceeded(SucceededEvent event) { String filename; String basepath; String folderName; String uploadDir; filename = event.getFilename(); basepath = VaadinService.getCurrent().getBaseDirectory().getAbsolutePath(); uploadDir = Utilities.getProperty("uploadDir", basepath + "/WEB-INF/properties/config.properties"); file = new File(uploadDir + filename); folderName = filename.substring(0, filename.length() - 5); Utilities.unZipFolder(uploadDir + filename, uploadDir + folderName); addFilename(folderName); try { Utilities.deleteCompressedReport(file); } catch (IOException e) { e.printStackTrace(); } Notification.show("upload finished", Notification.TYPE_HUMANIZED_MESSAGE); } private void addFilename(String sFilename) { reportDirList.add(sFilename); selectDir.addItem(sFilename); } } </code></pre> <p>When the extension is not .zip, this error is accrued:</p> <pre><code>com.vaadin.server.UploadException: Upload failed at com.vaadin.server.communication.FileUploadHandler.streamToReceiver(FileUploadHandler.java:581) at com.vaadin.server.communication.FileUploadHandler.handleFileUploadValidationAndData(FileUploadHandler.java:419) at com.vaadin.server.communication.FileUploadHandler.doHandleSimpleMultipartFileUpload(FileUploadHandler.java:382) at com.vaadin.server.communication.FileUploadHandler.handleRequest(FileUploadHandler.java:267) at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1329) at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:236) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: com.vaadin.server.NoOutputStreamException at com.vaadin.server.communication.FileUploadHandler.streamToReceiver(FileUploadHandler.java:518) ... 22 more </code></pre> <p>So How to interrupt upload and show the message?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload