gpt4 book ai didi

java - 在java servlet中设置多种内容类型

转载 作者:行者123 更新时间:2023-12-02 01:33:04 25 4
gpt4 key购买 nike

我有 .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));

最佳答案

您无法设置多种内容类型。您需要做的是确定从磁盘加载的文件的内容类型:

File file=new File("T:\\Temp\\"+docname);

找出内容类型后,进行设置:

response.setContentType(contentTypeOfTheFileIJustLoaded);

有几个选项可以帮助您找出文件的内容类型。看看下面的 Stackoverflow 问题:

Getting A File's Mime Type In Java

关于java - 在java servlet中设置多种内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55745354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com