[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);
 }
 
댓글 없음:
댓글 쓰기