使用pdfobject.js預覽檔案處理
前端頁面:
html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>檔案預覽</title>
</head>
<script type="text/javascript" th:src="@{/common/js/pdfobject.js}"></script>
<script th:inline="javascript" type="text/javascript">
function setData(data){
data = mini.clone(data);//獲取克隆資料
var myPDF = new PDFObject({url:basePath+'roadMonitor/roadMonitor/previewfile?guid='+data.guid}).embed();
}
</script>
<body>
</body>
</html>
後臺處理:
public void downLoadByGuid(String guid, HttpServletResponse response) {
InputStream in = null;
OutputStream out = null;
InputStream inputStream = null;
ExamineFileList examineFileList = examineFileListRepository.findOne(guid);
MinioClient minioClient = FileUtils.getInstance();
try {
in = minioClient.getObject(examineFileList.getFileDirectory(), examineFileList.getFilePath()+examineFileList.getFileNameUuid());
inputStream = getPdfStream(examineFileList.getFileEnd(),in); //把檔案流轉成pdf流的方法
int len = 0;
byte[] buffer = new byte[1024];
out = response.getOutputStream();
response.reset();
response.addHeader("Content-Disposition",
" attachment;filename=" + new String(examineFileList.getFileName().getBytes(),"iso-8859-1"));
response.setContentType("application/pdf;charset=UTF-8");
while ((len = inputStream.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (in != null){
try {
in.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
if (inputStream != null){
try {
inputStream.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}