html展示圖片的兩中方式
阿新 • • 發佈:2019-01-03
1、url展示(url展示圖片<img src='/img/demo.png'/>)
1.1、該方式比較大眾化,對應後臺java程式碼如下:
@RequestMapping(value = "/img/demo.png") public void demo(HttpServletResponse response) throws IOException { Writer writer = response.getWriter(); FileInputStream inputStream = null; try { inputStream = new FileInputStream(new File("d:/demo.png")); IOUtils.copy(inputStream,writer); } catch (FileNotFoundException e) { e.printStackTrace(); }finally { IOUtils.closeQuietly(inputStream); } }
1.2、下載功能,需要向後臺二次傳送請求,其次圖片名稱如果是中文的話容易亂碼、並且一個url對應一張圖片,下載程式碼不在贅述。
2、base64展示(base64展示圖片<img src="data:image/bmp;base64,${base64Data}"/>)
2.1、該方法寫法比較少見、java程式碼如下:
@RequestMapping(value = "/img/page") public void demo(Model model) throws IOException { FileInputStream inputStream = null; try { inputStream = new FileInputStream(new File("d:/demo.png")); byte[] src = IOUtils.toByteArray(inputStream); BASE64Encoder encode = new BASE64Encoder(); String base64 = encode.encode(src); model.addAttribute("base64Data", base64); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(inputStream); } }
2.2、下載功能,不需要再次向後臺傳送請求,並且檔名稱不存在中文顯示亂碼的問題,具體下載程式碼如下:
function download(base64Data, imgname) { var alink = document.createElement("a"); alink.href = base64Data; alink.download = imgname; alink.click(); }
以上是我個人筆記,若有不正確的地方請聯絡我(QQ:1298001635)或者留言,互相學習