使用pdf.js預覽實現讀取服務器外部文件

不知道你們使用百度網盤的文件預覽功能,f12看過控制檯沒有。




發現百度網盤使用的預覽文件功能全是基於開源pdf .js的


接下來正題,咱們在使用pdf.js默認是讀取發佈容器內部的文件,讀取外部的文件須要本身實現,接下來拿讀取桌面文件做爲例子來展現。



實現原理:返回一個外部流文件給pdf.js實現加載預覽文件。


步驟一:把pdf.js中的view.js中的改成DEFAULT_URL路徑改成下載接口便可




效果:

步驟二:後端實現,這裏後端是採用jersey,springmvc也是同樣的原理


	@GET
	@Path("/d")
    @Produces(MediaType.APPLICATION_OCTET_STREAM)
	public Response  download(@QueryParam("filemd5") String viFileMd5,@QueryParam("filename") String viFileName,@QueryParam("fileid") String viFileId,@Context HttpServletResponse response,@Context HttpServletRequest request) {
		File nFile = null;
		String nFileName = null;
		try {
			nFile = new File("C:\\Users\\Administrator\\Desktop\\test.pdf");
			nFileName = URLEncoder.encode("大數據", "UTF-8");
			response.setCharacterEncoding("UTF-8");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return Response.ok(nFile).header("Content-disposition","attachment;filename=" + nFileName+ ";filename*=utf-8''" + nFileName).header("Cache-Control", "no-cache").build();
	}


相關文章
相關標籤/搜索