1. 程式人生 > >html展示圖片的兩中方式

html展示圖片的兩中方式

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)或者留言,互相學習