我有.pdf,.jpg,.docx文件,我想在单击按钮时打开它们。是否有任何方法可以在servlet中设置多种内容类型。我的servlet代码是这样的。
String Docpath=request.getParameter("document");
String docname=request.getParameter("docName");
response.setContentType("application/pdf");
response.setHeader("Content-Disposition","inline;filename="+docname);
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
try{
ServletOutputStream outs=response.getOutputStream();
File file=new File("T:\\Temp\\"+docname);
File original=new File(Docpath);
File destination=new File("T:\\Temp\\");
FileUtils.copyFileToDirectory(original,destination);
InputStream input=new FileInputStream(file);
bis=new BufferedInputStream(input);
bos=new BufferedOutputStream(outs);
byte[]buf=new byte[2048];
int bytesRead;
while((bytesRead=bis.read(buf))>0) {
bos.write(buf,0,bytesRead);
}
} catch(IOException e) {
e.printStackTrace();
} finally {
bis.close();
bos.close();
}
有工作代码
File file=new File("T:\\Temp\\"+docname);
Path filePath=Paths.get("T:\\Temp\\"+docname);
response.setContentType(Files.probeContentType(filePath));
答案 0 :(得分:2)
您不能设置多种内容类型。您需要确定从磁盘加载的文件的内容类型:
File file=new File("T:\\Temp\\"+docname);
找出内容类型之后,进行设置:
response.setContentType(contentTypeOfTheFileIJustLoaded);
有一些选项可用于查找文件的内容类型。看看下面的Stackoverflow问题: