Example usage for org.apache.wicket.markup.html.form.upload FileUpload closeStreams

List of usage examples for org.apache.wicket.markup.html.form.upload FileUpload closeStreams

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.form.upload FileUpload closeStreams.

Prototype

public final void closeStreams() 

Source Link

Document

Close the streams which has been opened when getting the InputStream using #getInputStream() .

Usage

From source file:org.apache.openmeetings.web.common.UploadableImagePanel.java

License:Apache License

public void process(Optional<AjaxRequestTarget> target) {
    FileUpload fu = fileUploadField.getFileUpload();
    if (fu != null) {
        File temp = null;/*from  w ww  .j a  v a2 s  . co  m*/
        try {
            temp = fu.writeToTempFile();
            StoredFile sf = new StoredFile(fu.getClientFileName(), temp);
            if (sf.isImage()) {
                processImage(sf, temp);
            }
        } catch (Exception e) {
            log.error("Error", e);
        } finally {
            if (temp != null && temp.exists()) {
                log.debug("Temp file was deleted ? {}", temp.delete());
            }
            fu.closeStreams();
            fu.delete();
        }
    }
    update(target);
}

From source file:org.apache.openmeetings.web.room.sidebar.UploadDialog.java

License:Apache License

@Override
protected void onSubmit(AjaxRequestTarget target, DialogButton btn) {
    List<FileUpload> ful = uploadField.getFileUploads();
    if (ful != null) {
        boolean clean = cleanWb.getModelObject();
        for (FileUpload fu : ful) {
            FileItem f = new FileItem();
            f.setSize(fu.getSize());//from www.  java2s  . c  om
            f.setName(fu.getClientFileName());
            f.setExternalType(room.getRoom().getExternalType());
            BaseFileItem parent = roomFiles.getLastSelected();
            if (parent == null || !(parent instanceof FileItem)) {
                f.setOwnerId(getUserId());
            } else {
                f.setRoomId(parent.getRoomId());
                f.setOwnerId(parent.getOwnerId());
                f.setGroupId(parent.getGroupId());
                if (parent.getId() != null) {
                    f.setParentId(BaseFileItem.Type.Folder == parent.getType() ? parent.getId()
                            : parent.getParentId());
                }
            }
            f.setInsertedBy(getUserId());

            try {
                ProcessResultList logs = processor.processFile(f, fu.getInputStream());
                for (ProcessResult res : logs.getJobs()) {
                    fileLogDao.add(res.getProcess(), f, res);
                }
                room.getSidebar().updateFiles(target);
                if (logs.hasError()) {
                    form.error(getString("convert.errors.file"));
                } else {
                    if (toWb.getModelObject()) {
                        room.getWb().sendFileToWb(f, clean);
                        clean = false;
                    }
                }
            } catch (Exception e) {
                log.error("Unexpected error while processing uploaded file", e);
                form.error(e.getMessage() == null ? "Unexpected error" : e.getMessage());
            } finally {
                fu.closeStreams();
                fu.delete();
            }
        }
        if (form.hasError()) {
            onError(target, null);
        } else {
            close(target, null);
        }
    }
}

From source file:org.artifactory.common.wicket.panel.upload.FileUploadForm.java

License:Open Source License

@Override
protected void onSubmit() {
    final FileUpload upload = fileUploadField.getFileUpload();
    if (upload != null) {
        //Create a new file
        final String clientFileName = FilenameUtils.getName(upload.getClientFileName());
        uploadedFile = new File(tempUploadsDir, clientFileName);
        //Check new file, delete if it already existed
        if (!removeFile(uploadedFile)) {
            error("File " + uploadedFile + " already exists and cannot be deleted !!");
            uploadedFile = null;//from   w  w  w.  j  a  v  a  2s .  c  om
            return;
        }
        try {
            //Save to a new file
            FileUtils.forceMkdir(tempUploadsDir);
            uploadedFile.createNewFile();
            upload.writeTo(uploadedFile);
            listener.onFileSaved(uploadedFile);
        } catch (Exception e) {
            listener.onException();
            removeUploadedFile();
            throw new IllegalStateException(
                    "Unable to write file to '" + tempUploadsDir.getAbsolutePath() + "'.", e);
        } finally {
            upload.closeStreams();
        }
    }
}

From source file:org.artifactory.common.wicket.panel.upload.LogoFileUploadForm.java

License:Open Source License

@Override
protected void onSubmit() {
    final FileUpload upload = fileUploadField.getFileUpload();
    if (upload != null) {
        //Create a new file
        final String clientFileName = FilenameUtils.getName(upload.getClientFileName());
        uploadedFile = new File(tempUploadsDir, clientFileName);
        //Check new file, delete if it already existed
        if (!removeFile(uploadedFile)) {
            error("File " + uploadedFile + " already exists and cannot be deleted !!");
            uploadedFile = null;//  w w w  .  j  a  v  a  2  s  .  c om
            return;
        }
        boolean isFakeImage;
        try {
            //Save to a new file
            FileUtils.forceMkdir(tempUploadsDir);
            uploadedFile.createNewFile();
            upload.writeTo(uploadedFile);
            isFakeImage = isImageFake();
            if (!isFakeImage) {
                listener.onFileSaved(uploadedFile);
            } else {
                removeUploadedFile();
                error("The Uploaded File Contain a Non Valid Image Format");
            }

        } catch (Exception e) {
            listener.onException();
            removeUploadedFile();
            throw new IllegalStateException(
                    "Unable to write file to '" + tempUploadsDir.getAbsolutePath() + "'.", e);
        } finally {
            upload.closeStreams();
        }
    }
}

From source file:org.brixcms.plugin.site.resource.admin.UploadResourcesPanel.java

License:Apache License

private void processUploads() {
    final BrixNode parentNode = getModelObject();

    for (final FileUpload upload : uploads) {
        final String fileName = upload.getClientFileName();

        if (parentNode.hasNode(fileName)) {
            if (overwrite) {
                parentNode.getNode(fileName).remove();
            } else {
                class ModelObject implements Serializable {
                    @SuppressWarnings("unused")
                    private String fileName = upload.getClientFileName();
                }//from   ww w. j av  a 2  s.c  om

                getSession().error(getString("fileExists", new Model<ModelObject>(new ModelObject())));
                continue;
            }
        }

        BrixNode newNode = (BrixNode) parentNode.addNode(fileName, "nt:file");

        try {
            // copy the upload into a temp file and assign that
            // output stream to the node
            File temp = File.createTempFile(Brix.NS + "-upload-" + UUID.randomUUID().toString(), null);

            Streams.copy(upload.getInputStream(), new FileOutputStream(temp));
            upload.closeStreams();

            String mime = upload.getContentType();

            BrixFileNode file = BrixFileNode.initialize(newNode, mime);
            file.setData(file.getSession().getValueFactory().createBinary(new FileInputStream(temp)));
            file.getParent().save();
        } catch (IOException e) {
            throw new IllegalStateException(e);
        }
    }

    SitePlugin.get().selectNode(this, parentNode, true);
}

From source file:org.cast.cwm.data.component.MultipleFileUploadField.java

License:Open Source License

/**
 * @see org.apache.wicket.Component#onDetach()
 *//*from   ww w.  ja va  2 s  .c o m*/
@Override
protected void onDetach() {
    // cleanup any opened filestreams
    Collection<FileUpload> uploads = getConvertedInput();
    if (uploads != null) {
        Iterator<FileUpload> it = uploads.iterator();
        while (it.hasNext()) {
            final FileUpload upload = it.next();
            upload.closeStreams();
        }
    }

    // cleanup any caches
    inputArrayCache = null;

    // clean up the model because we don't want FileUpload objects in session
    Collection<FileUpload> modelObject = getModelObject();
    if (modelObject != null) {
        modelObject.clear();
    }

    super.onDetach();
}

From source file:org.dcm4chee.web.war.tc.TCDocumentsView.java

License:LGPL

public TCDocumentsView(final String id, IModel<? extends TCObject> model, final boolean editing) {
    super(id, model);

    this.editing = editing;

    final TCModalDialog removeDocDlg = TCModalDialog.getOkCancel("remove-doc-dialog",
            TCUtilities.getLocalizedString("tc.documents.removedialog.msg"), null);
    removeDocDlg.setInitialHeight(100);//w w  w .jav  a2s . c  om
    removeDocDlg.setInitialWidth(420);
    removeDocDlg.setUseInitialHeight(true);

    final WebMarkupContainer items = new WebMarkupContainer("document-items");
    items.setOutputMarkupId(true);
    items.add(new ListView<TCDocumentObject>("document-item", new ListModel<TCDocumentObject>() {
        @Override
        public List<TCDocumentObject> getObject() {
            return getTC().getReferencedDocumentObjects();
        }
    }) {
        @Override
        protected void populateItem(final ListItem<TCDocumentObject> item) {
            final TCDocumentObject doc = item.getModelObject();

            // compile text
            MimeType mimeType = doc.getMimeType();
            Date addedDate = doc.getDocumentAddedDate();
            String docDescription = doc.getDocumentDescription();
            if (docDescription == null) {
                docDescription = doc.getDocumentName();
            }

            StringBuilder sbuilder = new StringBuilder();
            if (docDescription != null) {
                sbuilder.append(docDescription).append("\n");
            }
            sbuilder.append("<i>");
            sbuilder.append(mimeType.getDocumentType().getHumanReadableName());
            sbuilder.append("; ");
            sbuilder.append(TCUtilities.getLocalizedString("tc.documents.addedon.text")).append(" ");
            sbuilder.append(DateFormat.getDateInstance(DateFormat.MEDIUM).format(addedDate));
            sbuilder.append("</i>");

            // add components
            final WebMarkupContainer actions = new WebMarkupContainer("document-item-actions");
            actions.setOutputMarkupId(true);
            actions.setOutputMarkupPlaceholderTag(true);
            actions.add(new ResourceLink<Void>("document-item-download-btn", doc.getDocumentContent(true))
                    .add(new TCHoverImage("document-item-download-image", ImageManager.IMAGE_TC_DISK_MONO,
                            ImageManager.IMAGE_TC_DISK)
                                    .add(new ImageSizeBehaviour(20, 20, "vertical-align: middle;"))
                                    .add(new TooltipBehaviour("tc.documents.", "download"))));
            actions.add(new AjaxLink<Void>("document-item-remove-btn") {
                @Override
                public void onClick(AjaxRequestTarget target) {
                    try {
                        if (editing) {
                            removeDocDlg.setCallback(new ModalDialogCallbackAdapter() {
                                @Override
                                public void dialogAcknowledged(AjaxRequestTarget target) {
                                    getEditableTC().removeReferencedDocument(doc);
                                    target.addComponent(items);
                                }
                            });

                            removeDocDlg.show(target);
                        }
                    } catch (Exception e) {
                        log.error("Removing referenced document from teaching-file failed!", e);
                    }
                }

                @Override
                public boolean isVisible() {
                    return editing;
                }
            }.add(new TCHoverImage("document-item-remove-image", ImageManager.IMAGE_TC_CANCEL_MONO,
                    ImageManager.IMAGE_TC_CANCEL).add(new ImageSizeBehaviour(20, 20, "vertical-align: middle;"))
                            .add(new TooltipBehaviour("tc.documents.", "remove"))));

            item.add(new AttributeModifier("onmouseover", true,
                    new Model<String>("$('#" + actions.getMarkupId(true) + "').show();")));
            item.add(new AttributeModifier("onmouseout", true,
                    new Model<String>("$('#" + actions.getMarkupId(true) + "').hide();")));

            item.add(new ResourceLink<Void>("document-item-view-link", doc.getDocumentContent(false))
                    .add(new NonCachingImage("document-item-image", doc.getDocumentThumbnail())
                            .add(new TCMaxImageSizeBehavior(32, 32).setAdditionalCSS("vertical-align:middle")))
                    .add(new TooltipBehaviour("tc.documents.", "view"))
                    .add(new AttributeAppender("target", true, new Model<String>("_blank"), " ")));
            item.add(new MultiLineLabel("document-item-text", sbuilder.toString()) {
                @Override
                protected void onComponentTagBody(final MarkupStream markupStream, final ComponentTag openTag) {
                    final CharSequence body = Strings.toMultilineMarkup(getDefaultModelObjectAsString());

                    replaceComponentTagBody(markupStream, openTag,
                            body.toString().replaceFirst("<p>", "<p style=\"margin:0px\">"));
                }
            }.setEscapeModelStrings(false));
            item.add(actions);
        }
    });

    final FileUploadField uploadField = new FileUploadField("file-upload-field") {
        @Override
        protected void onComponentTag(ComponentTag tag) {
            super.onComponentTag(tag);

            MimeType[] types = MimeType.values();
            if (types != null && types.length > 0) {
                StringBuilder accept = new StringBuilder();
                accept.append(types[0].getMimeTypeString());
                for (int i = 1; i < types.length; i++) {
                    accept.append(",").append(types[i].getMimeTypeString());
                }
                tag.put("accept", accept.toString());
            }
        }
    };
    final long maxUploadSize = Bytes.megabytes(25).bytes();
    final TextArea<String> uploadDescription = new TextArea<String>("file-upload-description-text",
            new Model<String>());
    final Form<Void> uploadForm = new Form<Void>("file-upload-form");
    uploadForm.setMultiPart(true);
    uploadForm.setMaxSize(Bytes.megabytes(25)); // seems that this doesn't work because of a bug in WICKET 1.4
    uploadForm.add(new Label("file-upload-label", TCUtilities.getLocalizedString("tc.documents.upload.text")));
    uploadForm.add(new Label("file-upload-description-label",
            TCUtilities.getLocalizedString("tc.documents.upload.description.text")));
    uploadForm.add(uploadField);
    uploadForm.add(uploadDescription);
    uploadForm.add(new AjaxButton("file-upload-btn") {
        @Override
        public void onSubmit(AjaxRequestTarget target, Form<?> form) {
            final FileUpload upload = uploadField.getFileUpload();
            if (upload != null) {
                String contentType = null, fileName = null;
                final long totalBytes = upload.getSize();
                try {
                    if (totalBytes > 0) {
                        if (totalBytes <= maxUploadSize) {
                            getEditableTC().addReferencedDocument(
                                    MimeType.get(contentType = upload.getContentType()),
                                    fileName = upload.getClientFileName(), upload.getInputStream(),
                                    uploadDescription.getModelObject());
                        } else {
                            log.warn("File upload denied: Max upload size is " + maxUploadSize + " bytes!");
                        }
                    }

                    target.addComponent(items);
                } catch (Exception e) {
                    log.error("Unable to upload teaching-file referenced document (content-type='" + contentType
                            + "', file-name='" + fileName + "')!", e);
                } finally {
                    upload.closeStreams();

                    uploadField.clearInput();
                    uploadDescription.clearInput();
                    uploadDescription.setModelObject(null);

                    target.addComponent(uploadForm);
                }
            }
        }

        @Override
        public void onError(AjaxRequestTarget target, Form<?> form) {
        }

        @Override
        protected IAjaxCallDecorator getAjaxCallDecorator() {
            return new TCMaskingAjaxDecorator(true, true);
        }
    }.add(new Label("file-upload-btn-text", TCUtilities.getLocalizedString("tc.documents.upload.start.text"))));

    add(items);
    add(removeDocDlg);
    add(new WebMarkupContainer("file-upload") {
        @Override
        public boolean isVisible() {
            return editing;
        }
    }.add(new Image("file-upload-info-img", ImageManager.IMAGE_TC_INFO) {
        @Override
        protected void onComponentTag(ComponentTag tag) {
            super.onComponentTag(tag);

            StringBuilder sbuilder = new StringBuilder();
            sbuilder.append(
                    MessageFormat.format(TCUtilities.getLocalizedString("tc.documents.upload.maxsize.text"),
                            Bytes.bytes(maxUploadSize).megabytes()));
            sbuilder.append("\n");

            MimeType[] mimeTypes = MimeType.values();
            if (mimeTypes != null) {
                boolean firstExt = true;
                int nExtPerLine = 8;
                int nExtInLine = 0;
                for (MimeType type : mimeTypes) {
                    String[] exts = type.getSupportedFileExtensions();
                    if (exts != null) {
                        for (String ext : exts) {
                            String s = "*." + ext;
                            if (firstExt) {
                                sbuilder.append(
                                        TCUtilities.getLocalizedString("tc.documents.upload.files.text"));
                                sbuilder.append("\n");
                                sbuilder.append(s);
                                firstExt = false;
                                nExtInLine++;
                            } else {
                                if (!sbuilder.toString().contains(s)) {
                                    if (nExtInLine == nExtPerLine) {
                                        sbuilder.append("\n");
                                        nExtInLine = 0;
                                    } else {
                                        sbuilder.append(", ");
                                    }
                                    sbuilder.append(s);
                                    nExtInLine++;
                                }
                            }
                        }
                    }
                }
            }
            tag.put("title", sbuilder.toString());
        }
    }.add(new ImageSizeBehaviour(16, 16, "vertical-align:middle;margin:5px;"))).add(uploadForm)
            .setMarkupId("documents-file-upload"));
}

From source file:org.projectforge.plugins.teamcal.event.importics.TeamCalImportPage.java

License:Open Source License

protected void importEvents() {
    checkAccess();/*from   w w  w.  j ava2s  . co  m*/
    final FileUpload fileUpload = form.fileUploadField.getFileUpload();
    if (fileUpload != null) {
        try {
            final InputStream is = fileUpload.getInputStream();
            actionLog.reset();
            final String clientFilename = fileUpload.getClientFileName();
            final CalendarBuilder builder = new CalendarBuilder();
            final Calendar calendar = builder.build(is);
            final ImportStorage<TeamEventDO> storage = teamCalImportDao.importEvents(calendar, clientFilename,
                    actionLog);
            setStorage(storage);
        } catch (final Exception ex) {
            log.error(ex.getMessage(), ex);
            error("An error occurred (see log files for details): " + ex.getMessage());
            clear();
        } finally {
            fileUpload.closeStreams();
        }
    }
}