2010-06-10 4 views
2

Кто-нибудь знает, возможно ли иметь вызов GWT-rpc, чтобы вызвать приглашение загрузки файла, не выполняя второй запрос отдельный сервлет? Я думал о том, чтобы иметь метод в сервлет rpc типа return void, а затем напрямую вызвать объект ответа, чтобы изменить тип содержимого и заставить браузер открыть диалоговое окно загрузки.GWT-Rpc как вернуть файл, чтобы браузер выскочил с помощью диалогового окна загрузки

Неужели кто-то придумал хороший способ достичь этого, не имея совершенно отдельного сервлета?

+1

Почему вы против того, чтобы иметь для этого совершенно отдельный сервлет? Это определенно кажется самым простым способом, намного легче (и тем самым менее подверженным ошибкам), чем тот, который вы предлагаете. –

ответ

2

Невозможно. HERE - это аналогичный вопрос, который у меня был ранее

0

Я думаю, что вы можете попробовать как это. На клик по ссылке вы можете сделать следующее действие.

Window.open("www.mydomain.com/downloadfile?fileId=something","_blank",""); 

Отнесите URL-адрес загружаемого файла в какой-либо сервлет и верните файл.

Но вы не можете отправлять данные на сервер. Вы можете добавить его в URL-адрес. В вызове RPC невозможно отправить файл.

+0

Я использую Window.Location.replace() с заголовком ответа 'Content-Disposition: attachment; имя файла = file.pdf. Он предлагает загрузку без открытия другого окна. –