DBILITY

vaadin file upload 본문

front-end & ui/vaadin legacy

vaadin file upload

DBILITY 2018. 6. 28. 21:54
반응형

Receiver 인터페이스를 구현하고,

Upload컴포넌트에 setReceiver메서드로 할당한다.

Upload엔 여러개의 Listener가 존재하며,

started, progress, finished, failed상태를 처리할 수 있다.

 

Upload.setImmediate(true)에 따라 input type=file로 보이는 필드를 

Button으로 가리고 Button 클릭시 파일 선택 대화상자가 표시된다.

upload컴포넌트에 Button은 setButtonCaption("Change...");로 추가.

 

 

기억나지 않을때 봐야 하니 작성한다.

다음은 Receiver를 구현한 예로 구현할 메서드는 receiveUpload 하나다.

 

@Override
public OutputStream receiveUpload(String filename, String mimeType) {

	FileOutputStream fos = null;

	try {

		if(!Pattern.matches(Constants.REGEX_IMAGE_EXT, filename)) {
			throw new IOException(Constants.MSG_IMAGE_EXT_NOTMATCH);
		}

		imagePath = "img/"+filename;

		String baseDir = VaadinService.getCurrent().getBaseDirectory().getAbsolutePath();
		file = new File(baseDir + "/VAADIN/themes/" + UI.getCurrent().getTheme() +"/"+ imagePath);

		if(file.exists()) {
			file.delete();
		}
		file.createNewFile();
		fos = new FileOutputStream(file);

	} catch (IOException e) {
		logger.debug("{}", e.getMessage());
	}

	return fos;
}
반응형
Comments