내 시나리오는 다음과 같습니다. Vaadin 7.7.10을 클릭하면 생성 된 파일을 클릭 생성 후 다운로드 할 수 있습니다.Vaadin 7 - 동적으로 생성 된 파일의 즉석 다운로드
생성자 메서드가 있는데, 이는 byte[]
(필요한 경우 OutputStream
으로 쉽게 수정할 수 있음)을 반환하고, StreamResource
을 만듭니다. 그래서 리소스를 다운로드 할 준비가되었지만 이제는 무엇을해야합니까?
FileDownloader
과 접근 방식을 사용할 수 없다고 생각합니다. 확장 된 버튼을 실제로 클릭하기 전에 페이지가 표시 될 때마다 파일을 생성해야하기 때문입니다. (그러고 싶지는 않습니다. 요구에 따라 사용해야하는 매우 비싼 작업).
Page.getCurrent().open(streamResource, null, false)
를 사용하여 원하는 효과를 얻을 수 있었다, 그러나
Resource
인수
.open
는 7 Vaadin이 있기 때문에 사용되지 않습니다, 그래서
어떤 해결 방법 또는 다른 접근 방법이 있나요 ... 싶어하지 않습니다에 의존 이?
FileDownloader를 사용하여 클릭 할 때 왜 파일을 생성 할 수 없습니까? 당신이 StreamSource를 구현하는 커스텀 클래스를 만들었다면 _ 생각한다. getStream 메서드를 재정의하고 거기에서 파일 생성을 수행 할 수 있습니까? – Jay
이 스레드를보세요 : https://vaadin.com/forum#!/thread/2864064 –
맞아요, Jay. StreamSource 커스텀 클래스를 onClick 이벤트 안에 넣었 기 때문에 혼란 스러웠습니다. 그래서 "헤이, 클릭 한 후에 만 발생하지만 실제 클릭하기 전에 FileDownloader를 확장해야합니다"와 같았습니다. 내가해야 할 일은 생성자 코드를 생성자 안에 넣은 다음 FileDownloader를 확장하는 것입니다. 그런 다음 올바르게 작동합니다. – Ellrohir