2015년 4월 29일 수요일

vaadin] simple upload and download ..

[Upload]

Upload 컴포넌트가 있어서 사용하면 된다.
버전이 올라가면서 리스너가 조금 변했는데 어렵진 않다.

private Upload upload ;
.
.
private void initFileUpload() {
 upload = new Upload("Upload a file",  new Upload.Receiver() {
 
   @Override
   public OutputStream receiveUpload(String filename, String mimeType) {
    try {
     FileSystemUtil util = new FileSystemUtil();
     tempFile = File.createTempFile(filename, ".qs", new File("생성할 파일의 위치") ) ;
   
     return new FileOutputStream(tempFile) ;
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
     return null;
    }
   }
  });
  /** 업로드가 끝난 후 발생되는 곳 **/
  upload.addFinishedListener(new Upload.FinishedListener() {
 
   @Override
   public void uploadFinished(FinishedEvent event) {
    try {
   
     작업
   
     }
   
    } catch (Exception e) {
     // TODO: handle exception
    }finally{
     importLayout.insertSuccess();
    }
 
   }
  });
 }



이렇게 한 뒤 upload 컴포넌트를 add 해주면 된다.


[Download]
 private FileDownloader downloader ;
.
.
private Button downloadBtn() {
  Button btn = new Button("Download");
 
  FileResource resource = new FileResource(new File(다운로드할 파일 또는 outputStream));

  downloader = new FileDownloader(resource);
  downloader.extend(btn);
 
  return btn;
 }


* 버튼 없이 자동으로 다운로드 하게 하는 것!
private static final String MYKEY = "download";
.
.
.

private void export(String filePath){
FileResource resource = new FileResource(new File(filePath));
setResource(MYKEY, resource);
   ResourceReference rr = ResourceReference.create(resource, this, MYKEY);
   Page.getCurrent().open(rr.getURL(), null);
}

댓글 없음:

댓글 쓰기