• java web实现img读取盘符下的图像


    最近做了一个项目,用户上传图片后通过img控件显示出来。大家都知道img通过src属性就可以显示图片。如<img src="http://127.0.0.1/a/b/abc.jpg">。这样做没有任何问题,相信很多朋友也是这么做的。

    但是这样做有个问题,图片必须是放在应用下面的。而且如果做了集群的话,那么图片就分散在富多个应用下面,很不好管理。这是我们自然会想到要是将图片放在一个地方就好了,最好是在应用外面,比如c盘的img目录下面。当然这样上传图片是很好做,但是要读取图片该怎么办呢?通过src="http://127.0.0.1/a/b/abc.jpg"这种办法是无法办到的。这时我们可以通过下面的办法读取制定盘符下面的图片:

    @RequestMapping(value="showImg")
       public void ShowImg(HttpServletRequest request,HttpServletResponse response) throws IOException{
           String imgFile = request.getParameter("imgFile"); //文件名
           String path= UrlUtil.getValue("goodsImg");//这里是存放图片的文件夹地址
           FileInputStream fileIs=null;
           try {
            fileIs = new FileInputStream(path+"/"+imgFile);
           } catch (Exception e) {
             log.error("系统找不到图像文件:"+path+"/"+imgFile);        
             return;
           }
           int i=fileIs.available(); //得到文件大小   
           byte data[]=new byte[i];   
           fileIs.read(data);  //读数据   
           response.setContentType("image/*"); //设置返回的文件类型   
           OutputStream outStream=response.getOutputStream(); //得到向客户端输出二进制数据的对象   
           outStream.write(data);  //输出数据      
           outStream.flush();  
           outStream.close();   
           fileIs.close();   
       }

    这里我是使用了springMVC框架。@RequestMapping(value="showImg")实际就是一个请求。

    这时我们将img的src改为"http://127.0.0.1/a/showImg?imgFile=abc.jpg"就能显示图片了,也就是讲src改为一个请求地址,imgFile后是图片的名字。

  • 相关阅读:
    bzoj3531[Sdoi2014]旅行
    bzoj3212 Pku3468 A Simple Problem with Integers 线段树
    bzoj1858[Scoi2010]序列操作 线段树
    bzoj2243[SDOI2011]染色 树链剖分+线段树
    bzoj3038上帝造题的七分钟2
    bzoj1036[ZJOI2008]树的统计Count 树链剖分+线段树
    bzoj3211花神游历各国 线段树
    bzoj4596[Shoi2016]黑暗前的幻想乡 Matrix定理+容斥原理
    bzoj3129[Sdoi2013]方程 exlucas+容斥原理
    刷题总结——寻宝游戏(bzoj3991 dfs序)
  • 原文地址:https://www.cnblogs.com/mouseIT/p/4181068.html
Copyright © 2020-2023  润新知