在使用springmvc的時候我們想要打開頁面的時候展示的就是一張二維碼或者圖片,這個時候應該怎麼實現呢?
先看效果圖
此處是我通過後臺直接在頁面顯示的圖片,二維碼內容爲:認真學習Java,大小是470*470的圖片,我們如何做到將一張圖片直接在頁面顯示呢?
1.先說圖片顯示
1.1 假如你已在後臺生成圖片BufferedImage形式的圖片流,如:
這樣你就可以直接ImageIos配合response 將其打印在頁面上,
1.2 假如你的圖片已存在本地服務器,不需要你自己生成流了,這時候你只需要讀取圖片流就好了,如圖完整代碼展示
現在逐行解釋,文件流的讀取就沒什麼好說的了,主要實在進行response的時候要注意,響應內容的設置要一致,對不同的文件要設置不同的內容顯示,這句代碼
response.addHeader("Content-Disposition","attachment;filename=img.jpg");
這個是響應我們瀏覽器幫我們自動下載,文件名後綴的格式要和讀取文件的格式一致,不一致也可以生成(最好一致),這個在我們做execle下載工具類用得到,對於要顯示的內容和所對應的代碼,給大家推薦個地址
http://rubyq.iteye.com/blog/1408141,可以參考這兒。
測試結果如圖
其中注意文件名會出現AK 這樣的亂碼,在進行文件名拼接爲中文的時候需要 URL decode j進行轉換,這邊就不做贅述,
在將圖片轉換爲Base64的流,
這時候我們就可以直接在頁面通過Base64顯示