javaWeb項目實現(xiàn)pdf預(yù)覽

本來是想做下載,結(jié)果無意中發(fā)現(xiàn)response不設(shè)置頭部即可實現(xiàn)預(yù)覽,此代碼也可直接實現(xiàn) 照片,word文檔等預(yù)覽。

前端代碼:

注意: target="_black 可以讓pdf在新的網(wǎng)頁打開。

<a href="<%=path%>/DownLoadPdf?fileName=${rec}" target="_black">預(yù)覽</a>

后端代碼:

@WebServlet(name = "DownLoadPdf")
public class DownLoadPdf extends HttpServlet {

    protected void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
        String fileName = request.getParameter("fileName");
      
        if(fileName!=null){
            String realPath = request.getSession().getServletContext().getRealPath("/attachFiles/detections/");
            File file = new File(realPath+fileName);
            FileInputStream fis = new FileInputStream(file);
            ServletOutputStream out = response.getOutputStream();
            byte[] buf = new byte[4096];
            int len = -1;
            while ((len = fis.read(buf)) > 0) {
                out.write(buf, 0, len);
            }
            out.flush();
            fis.close();
            out.close();
        }

    }
}

若要進行下載,則加入以下代碼。

               response.setHeader("Content-Disposition", "attachment; filename=\""
                        + fileName + "\"");
                response.addHeader("Content-Length", file.length() + "");
                response.setContentType("application/octet-stream");
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容