Я внедрил servlet
для загрузки файлов документов, доступных в моем классе классов приложений.Проблема с загрузкой MSWord с использованием HttpServlet
что происходит; файл загружается, но ms-word
не может открыть его. увидеть скриншот ms-word
:
Servlet
реализация выглядит следующим образом:
public class DownloadFileServlet extends HttpServlet {
protected void doGet(
HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String fileName = "test.doc";
ClassPathResource resource = new ClassPathResource(File.separator + fileName);
ServletOutputStream sos = null;
FileInputStream fis = null;
try {
response.setContentType("application/msword");
response.setHeader("Content-disposition", "attachment; fileName=\"" + fileName + "\"");
fis = new FileInputStream(new File(resource.getURI().getPath()));
byte[] bytes = org.apache.commons.io.IOUtils.toByteArray(fis);
sos = response.getOutputStream();
sos.write(bytes);
sos.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if(fis != null) {
fis.close();
}
if(sos != null) {
sos.close();
}
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
я пробовал почти все предложенные типы контента для ms-word
файлов. но все же он не работает.
application/msword
application/ms-word
application/vnd.ms-word
Просьба предложить мне сделать ошибку или есть какой-либо другой способ достижения.
Примечание: я попробовал почти все подходы, доступные на SO.
Как вы сделать его работу –