我已经实现了一个servlet
下载我的应用程序类路径下可用的文档文件。
发生了什么;文件正在下载,但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 上几乎所有可用的方法。