前端页面显示图片

从数据库中读取图片路径,然后从服务器本地读取并在页面显示出来,由于本地服务器权限问题一直不能直接读取,几经周折使用layer得以实现,特记录下来以供后续参考:

前端代码:

<td  id="imgs">
   <c:if test="${rpReportBl.img != null}">
      <a href='javascript:picLook("${rpReportBl.img}");' >图片预览</a>&nbsp;&nbsp;&nbsp;
   </c:if>
</td>

JS:

<script type="text/javascript">
    function picLook(fileUrls){
        if(fileUrls != ''){
            var pic = fileUrls.split(';');
            var data = [];
            for(var i=0;i<pic.length;i++){
                if(pic[i] != '' ){
                    var picData = {
                        src:"${ctx}/redpacket/rpReportBl/getPic?fileName="+pic[i],//原图地址,此处为路径,返回二进制数据
                        alt:pic[i]  //图片名字
                    };
                    data.push(picData);//将多个图片属性存入data数组
                }
            }
            layer.photos({
                closeBtn:true,//右上关闭
                photos: {
                    data : data  //将数组放入
                }
            });
        }else{
            alert('没有图片');
        }
    }
</script>

后台代码:

/**
 * 返回图片流
 * @param fileName
 * @param request
 * @param response
 * @return
 */
@RequestMapping(value = "getPic")
public String IoReadImage( String fileName,HttpServletRequest request,HttpServletResponse response)  {
   ServletOutputStream out = null;
   FileInputStream ips = null;
   try {
      //获取图片存放路径
      String imgPath = Global.getConfig("imgsurl")+ File.separator+fileName;
      ips = new FileInputStream(new File(imgPath));
      response.setContentType("multipart/form-data");
      out = response.getOutputStream();
      //读取文件流
      int len = 0;
      byte[] buffer = new byte[1024 * 10];
      while ((len = ips.read(buffer)) != -1){
         out.write(buffer,0,len);
      }
      out.flush();
   }catch (Exception e){
      logger.error("",e);
   }finally {
      try {
         out.close();
      } catch (IOException e) {
         logger.error("",e);
      }
      try {
         ips.close();
      } catch (IOException e) {
         logger.error("",e);
      }
   }
   return null;
}
如有不足之处,请指出共勉! 得意 得意



























### 回答1: 在 HTML 前端中,动态显示图片可以通过以下步骤实现: 1. 在 HTML 中创建一个 img 标签,并设置其 src 属性为一张默认的图片,例如: ```html <img id="myImage" src="default.jpg"> ``` 2. 在 JavaScript 中,获取该 img 标签的引用,并通过设置其 src 属性来动态更改图片。例如: ```javascript var img = document.getElementById("myImage"); img.src = "new.jpg"; ``` 3. 可以通过定时器或事件触发器来动态更改图片,例如: ```javascript setInterval(function(){ img.src = "new.jpg"; }, 1000); // 每隔 1 秒更换一次图片 ``` 另外,也可以使用 jQuery 等前端框架来实现动态更改图片的效果。 ### 回答2: 要在HTML前端动态显示图片,可以通过以下几种方法实现: 1. 使用HTML的img标签:在HTML中,可以使用img标签来显示图片。通过设置img标签的src属性,将图片的URL传递给src属性值,即可在网页上显示图片。例如: ``` <img src="图片的URL" alt="图片描述"> ``` 这种方法适用于静态显示图片,无法实现动态切换图片。 2. 使用JavaScript动态改变图片的src属性:通过JavaScript编写代码,可以动态改变图片的src属性值,实现图片的动态切换。首先,在HTML文件中设置一个img标签,并给它一个id,如: ``` <img id="myImage" src="默认图片的URL" alt="图片描述"> ``` 然后,在JavaScript中获取这个img标签的引用,通过改变它的src属性值,来更新显示图片。例如: ``` <script> var img = document.getElementById("myImage"); img.src = "新图片的URL"; </script> ``` 这样,当JavaScript代码执行时,图片将会动态地改变为新的图片。 3. 使用CSS的background-image属性:除了使用img标签外,还可以通过CSS的background-image属性来显示图片。在HTML文件中,设置一个带有特定类的元素(如div、span等),然后在CSS文件中为该类设置background-image属性,并将图片的URL传递给它。例如: ``` HTML: <div class="myDiv"></div> CSS: .myDiv { background-image: url("图片的URL"); width: 200px; height: 200px; } ``` 这样,页面上的.myDiv元素将会显示出指定的背景图片。 以上是三种常见的方法,可以根据具体情况选择合适的方法来实现在HTML前端动态显示图片。 ### 回答3: HTML前端可以通过使用CSS样式和JavaScript来实现动态显示图片的效果。 首先,在HTML中使用`<img>`标签来创建一个图片元素,可以通过设置`src`属性来指定图片的路径。例如: ```html <img id="myImage" src="image.jpg" alt="My Image"> ``` 这样就创建了一个ID为`myImage`的图片元素,并显示了名为`image.jpg`的图片。 然后,可以使用CSS样式来控制图片显示效果。可以通过设置`width`和`height`属性来调整图片的大小,通过`border`属性来添加边框,以及其他样式属性来美化图片的外观。例如: ```html <style> #myImage { width: 200px; height: 200px; border: 1px solid black; border-radius: 50%; } </style> ``` 这样就设置了`myImage`图片元素的大小为200像素,添加了一个黑色边框,以及圆形的边框样式。 接下来,可以使用JavaScript来实现图片的动态显示。可以通过JavaScript代码来改变图片的路径或其他属性,从而实现动态效果。例如: ```html <script> var image = document.getElementById('myImage'); image.addEventListener('click', function() { image.src = 'newImage.jpg'; }); </script> ``` 这样添加了一个点击事件监听器,当点击`myImage`图片元素时,将图片的路径更改为`newImage.jpg`,从而实现了图片的动态显示效果。 因此,通过组合使用HTML、CSS和JavaScript,我们可以实现前端的动态显示图片效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值