I created a image upload using submitUpload() does work when I click in my Button but when I add the submitUpload() in a method doesn't.
This is the class I am using:
// save image public class ImageUpload implements Receiver{ private File file; private String foto; private final String path = "/home/fernando/curriculum/"; private String cpf; /** add cpf document */ public void setCpf(String cpf){ this.cpf = cpf; } /** save image */ @Override public OutputStream receiveUpload(String filename, String mimeType) { FileOutputStream fos = null; try{ file = new File(filename); if(file.getName().endsWith("jpg")){ String cpfNumeros = this.cpf.replaceAll("\\.", "").replace("-", ""); //remove mask cpf String[] imagem = filename.split("\\."); //get jpg String novaImagem = cpfNumeros + "." + imagem[1]; // define name new image // new image File newFile = new File(path + novaImagem); if(newFile.exists()){ newFile.delete(); } fos = new FileOutputStream(newFile); //salva imagem }else{ new Notification("Erro de arquivo<br/>", "Somente arquivos jpg são permitidos", Notification.Type.ERROR_MESSAGE) .show(Page.getCurrent()); } }catch(FileNotFoundException ex){ new Notification("File not found<br/>", ex.getLocalizedMessage(), Notification.Type.ERROR_MESSAGE) .show(Page.getCurrent()); return null; } return fos; } } public class ImageUploadView extends CustomComponents { //upload image ImageUpload imageUpload = new ImageUpload(); final Upload upload = new Upload("", imageUpload); upload.setCaption("Image"); upload.setButtonCaption(null); mainLayout.addComponent(upload); Button btnSave = new Button("Save"); btnSave.addClickListener(new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { save(); //call save method } }); } /** save informations on db and save image of user */ private void save(){ if(!cpf.getValue().trim().isEmpty()){ imageUpload.setCpf(cpf.getValue()); upload.submitUpload(); } } If I call the method save the submitUpload() doesn't work, but when I test submitUpload() directly on Button listener does work.
Any idea ?