2011-12-23 4 views
0

В моем проекте (Java SpringMVC3) я получаю файл XLS через HttpClient, и я хочу, чтобы этот файл загружался, как реальная загрузка. Всплывающее окно, показывающее диалог загрузки. Как я могу это сделать?Сделать ссылку, чтобы загрузить локальный файл

+0

оба ответа были полезны. Я использовал первый. – yyy

ответ

2

контроллер должен скопировать содержимое файла в объект ответа. Не забывайте - функция контроллера должна возвращать NULL. Ниже я показываю рабочий пример из своей заявки:

String filename = /* path to a file */ 

File file = new File(filename); 

response.setContentType(new MimetypesFileTypeMap().getContentType(file)); 
response.setContentLength((int)file.length()); 
response.setHeader("content-disposition", "attachment; filename=" + URLEncoder.encode(filename, "UTF-8")); 

InputStream is = new FileInputStream(file); 
FileCopyUtils.copy(is, response.getOutputStream()); 

return null; 
+0

Почему нам нужны последние две строки? InputStream = новый FileInputStream (файл); FileCopyUtils.copy (is, response.getOutputStream()); – Sridhar

1

В основном вам необходимо реализовать контроллер, который выполняет загрузку и задает тип заголовка ответа-ответа. то вы вызываете этот контроллер из представления.

Вот краткий пример того, как указать тип заголовка-мим

HTTP Header Mime Type in Websphere Application Server 7

Смежные вопросы