根据第三方提供的图片或pdf的url进行预览
Posted dsh2018
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据第三方提供的图片或pdf的url进行预览相关的知识,希望对你有一定的参考价值。
1 package com.hailian.modules.credit.common.controller; 2 3 import java.io.BufferedInputStream; 4 import java.io.File; 5 import java.io.FileInputStream; 6 import java.io.IOException; 7 import java.io.OutputStream; 8 import java.io.UnsupportedEncodingException; 9 import java.net.URL; 10 11 import javax.servlet.http.HttpServletResponse; 12 13 import com.hailian.component.base.BaseProjectController; 14 import com.hailian.jfinal.component.annotation.ControllerBind; 15 import com.hailian.modules.credit.utils.FileTypeUtils; 16 import com.jfinal.kit.PropKit; 17 @ControllerBind(controllerKey = "/credit/commonFile") 18 public class FileViewAndUpController extends BaseProjectController{ 19 public void previewFileOnline() { 20 HttpServletResponse response = getResponse(); 21 BufferedInputStream bis = null; 22 OutputStream os = null; 23 try { 24 String path = getPara("url");//url地址 25 path=new String(getPara("url").getBytes("iso8859-1"),"utf-8"); 26 String type = getPara("type");//获取类型 27 response.reset(); // 非常重要 28 response.setContentType("text/html; charset=UTF-8"); 29 if(!FileTypeUtils.isImg(type)){ 30 response.setContentType("application/pdf"); 31 }else{ 32 response.setContentType("image/jpeg"); 33 } 34 URL url =new URL(path); 35 bis = new BufferedInputStream(url.openStream()); 36 os = response.getOutputStream(); 37 int count = 0; 38 byte[] buffer = new byte[1024 * 1024]; 39 while ((count =bis.read(buffer)) != -1){ 40 os.write(buffer, 0,count); 41 } 42 os.flush(); 43 }catch (Exception e) { 44 e.printStackTrace(); 45 if (os !=null){ 46 try { 47 os.close(); 48 } catch (IOException e2) { 49 e2.printStackTrace(); 50 } 51 } 52 if (bis !=null){ 53 try { 54 bis.close(); 55 } catch (IOException e2) { 56 e2.printStackTrace(); 57 } 58 } 59 } finally { 60 if (os !=null){ 61 try { 62 os.close(); 63 } catch (IOException e) { 64 e.printStackTrace(); 65 } 66 } 67 if (bis !=null){ 68 try { 69 bis.close(); 70 } catch (IOException e) { 71 e.printStackTrace(); 72 } 73 } 74 } 75 } 76 }
以上是关于根据第三方提供的图片或pdf的url进行预览的主要内容,如果未能解决你的问题,请参考以下文章