1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > js+java 实现图片预览功能

js+java 实现图片预览功能

时间:2022-06-22 14:06:02

相关推荐

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页面经过<%%>服务端渲染出一个文件路径流,方能访问到该图片地址。

方法,千千万,这只是其一。

源代码文件路径

/mcya/JavaScriptExperience/issues

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。