Скачать zip-файл через калитку - PullRequest
4 голосов
/ 21 октября 2011

Я использую фреймворк wicket, и я сделал zip-файл по коду Java, я хочу получить ссылку для его загрузки, я не знаю, возможно ли это, или я должен создать zip-файл по wicket (не Java), а затем есть ссылка для загрузки.

1 Ответ

7 голосов
/ 21 октября 2011

Взгляните на ZipResourceStream. С помощью этого класса вы можете создавать zip-содержимое каталога на лету и использовать org.apache.wicket.markup.html.link.ResourceLink с ResourceStreamResource для ссылки на него.

File file = new File(path);
IResourceStream resStream = new ZipResourceStream(file);
ResourceStreamResource resource = new ResourceStreamResource(resStream);
ResourceLink link = new ResourceLink("link", resource);
add(link);

В качестве альтернативы, если вы предпочитаете архивировать файл с помощью другого инструмента, вы можете использовать DownloadLink:

File zipFile = generateZipFile();
IModel fileModel = new Model(zipFile);
add(new DownloadLink("dllink", fileModel);

Если вы предпочитаете создавать файл на лету в ссылке onClick ссылки, взгляните на этот вопрос: Как использовать DownloadLink от Wicket с файлом, сгенерированным на лету?

...