2015-06-14 4 views
0

Я сделал приложение с использованием gwt, и он работает до сих пор. Создает файл на сервере. Теперь я пытаюсь загрузить этот файл. Я попробовал его сЗагрузите файл с сервера в gwt

Window.open(GWT.getHostPageBaseURL() + "file.xml", "file.xml", ""); 

, но с тем, что браузер открывает файл, вызвать его XML, вместо того, чтобы загрузить его.

После этого я попробовал с

<iframe src="javascript:''" id="__gwt_downloadFrame" tabIndex='-1' style="position: absolute; width: 0; height: 0; border: 0; display: none;"></iframe> 

в моей web.xml и

public static void triggerDownload(final String url) { 
     if (url == null) { 
      throw new IllegalArgumentException("URL must not be null"); 
     } // if 

     if (downloadFrame == null) { 
      downloadFrame = Frame.wrap(Document.get().getElementById("__gwt_downloadFrame")); 
     } // if 
     downloadFrame.setUrl(url); 
     } // triggerDownload() 

в моей стороне клиента, с URL = GWT.getHostPageBaseURL() + "EPK.epml" С этим, просто ничего не происходит, если я нажму кнопку загрузки.

Я много читал о загрузочном сервлете, но я не получаю это полностью и не получаю от этого никакого труда.

Может кто-то из вас рассказать мне, что я делаю неправильно, или дать мне подходящий пример для моего дела?

С наилучшими пожеланиями Т.

ответ

0

Это открытие файла XML вместо загрузки, потому что сервлет не говорит браузеру, что это должно быть загружено.

Измените код своего сервлета и добавьте его перед тем, как записать контент в ответ.

response.setContentType("application/octet-stream");​ 
response.setHeader(​"Content-disposition","attachment; filename=\"" + fileName +"\""); 
Смежные вопросы