js+java 實現圖片在線預覽功能

本博客主要描述如何用JavaScript+java實現圖片的預覽功能,其實要點還是需要服務端的流。


(一)功能描述
點擊頁面的 【預覽】 查看已經上傳的或者在服務器中存在的圖片。


(二)實現原理
使用img標籤的src屬性來渲染數據,但是,src的值是服務端返回的文件流。即是,點擊【預覽】按鈕,跳轉到預覽頁面,預覽頁面的img標籤的src屬性的值是經過渲染的文件流。


(三)具體的實現代碼

  • (1)【預覽】按鈕頁,需要傳從服務端傳來的路徑
<html>
    <button id="yulanButton">預覽</button>
    <script type="text/javascript">
        $(function(){
                $("#yulanButton").on('click', function(){
                    // 打開預覽頁面,需要傳服務器的路徑(url傳值,可參考我的另一篇博客《js url傳參》)
                    window.open('./yulan.jsp?url=獲取到的服務器的路徑');
                })
            })
        })
    </script>
</html>
  • (2) yulan.jsp 預覽頁面,需要連接到獲取圖片留的jsp
<div class="imgdiv">
    <img id="imgss" src="../params/projAndDetailImg.jsp" title="在線預覽">
</div>
<script type="text/javascript">
    var yulanUrl = 獲取到的服務器的路徑
    $(function(){
        $("#imgss").attr('src', "../params/projAndDetailImg.jsp?photoUrl="+yulanUrl)
    });

</script>
  • (3) projAndDetailImg.jsp 服務端渲染頁面
<%

    String photoUrl=request.getParameter("photoUrl");
    // photoUrl爲接收到的路徑
    if(StringUtils.isNotBlank(photoUrl)){
        File file = new File(photoUrl);
        // File file=new File(photoUrl);
        if (file.exists()) {
            try (FileInputStream fis = new FileInputStream(file);
                    BufferedInputStream bis = new BufferedInputStream(fis, 1024);
                    ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);) {
                byte[] cache = new byte[1024];
                int length = 0;
                while ((length = bis.read(cache)) != -1) {
                    bos.write(cache, 0, length);
                }
                /**
                return bos.toByteArray();
                BASE64Encoder encoder = new BASE64Encoder();
                return encoder.encode(bos.toByteArray());
                **/
                response.getOutputStream().write(bos.toByteArray());
            }
        }
    }
%>

ok !!!


圖片在先預覽功能相對於前端來說,不是有多複雜,只需要一個img標籤即可,但是需要我們在jsp頁面經過<%%>服務端渲染出一個文件路徑流,方能訪問到該圖片地址。


方法,千千萬,這只是其一。


源代碼文件路徑

https://github.com/mcya/JavaScriptExperience/issues
發佈了94 篇原創文章 · 獲贊 195 · 訪問量 45萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章