首页 > 代码库 > java web实现img读取盘符下的图像

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="http://www.mamicode.com/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="http://www.mamicode.com/showImg")实际就是一个请求。

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

 

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