zoukankan      html  css  js  c++  java
  • 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后是图片的名字。

  • 相关阅读:
    《std测试》
    《关于cmp返回值的理解》
    《武汉大学2020年新生程序设计竞赛》
    《多校打卡 * 2018 Multi-University Training Contest 1》
    《牛客练习赛28-B》
    python使用sqlite示例
    python 使用mysql示例
    使用virtualenv为应用提供了隔离的Python运行环境
    生成字母验证码图片
    模拟微博登录
  • 原文地址:https://www.cnblogs.com/mouseIT/p/4181068.html
Copyright © 2011-2022 走看看