通过URL下载两种类型图片

来源:互联网 发布:网络诈骗追回钱的几率 编辑:程序博客网 时间:2024/04/30 10:01
@RequestMapping(produces="application/html;charset=UTF-8",value="downMociImg")    public void downLoadImages(String imagePath,String imageName,Integer picType){        List<String> suffixList = Arrays.asList(Constants.FILETYPE_DOWNLOAD_IMG);        String suffix = imagePath.substring(imagePath.lastIndexOf(".") + 1);        String pngsuffix = ".png";        String svgsuffix = ".svg";        if(imagePath!=""&&!imagePath.equals(null)){            BufferedInputStream in = null;                BufferedOutputStream out = null;              try {                URL url = new URL(imagePath);                  HttpURLConnection conn = (HttpURLConnection) url.openConnection();                  conn.setConnectTimeout(5 * 1000);                  conn.setRequestMethod("GET");                  conn.setRequestProperty(                      "Accept", "image/gif, image/jpeg, image/pjpeg, image/pjpeg, "                      + "application/x-shockwave-flash, application/xaml+xml, "                      + "application/vnd.ms-xpsdocument, application/x-ms-xbap, "                      + "application/x-ms-application, application/vnd.ms-excel, "                      + "application/vnd.ms-powerpoint, application/msword, */*");                  conn.setRequestProperty("Accept-Language", "zh-CN");                  conn.setRequestProperty("Charset", "UTF-8");                  InputStream inStream = conn.getInputStream();                  if (suffixList.contains(suffix)) {// 文件格式不对                    if(picType==1){                        imageName += pngsuffix;                        response.setContentType("application/x-png");                           }else{                        imageName +=svgsuffix;                        response.setContentType("text/xml");                    }                }                response.setCharacterEncoding("UTF-8");                    response.setHeader("Content-Disposition", "attachment; filename="+new String(imageName.getBytes("gbk"),"iso-8859-1"));                    in = new BufferedInputStream(inStream);                out = new BufferedOutputStream(response.getOutputStream());                    byte[] data = new byte[1024];                    int len = 0;                    while (-1 != (len=in.read(data, 0, data.length))) {                        out.write(data, 0, len);                    }             } catch (FileNotFoundException e) {                e.printStackTrace();            } catch (UnsupportedEncodingException e) {                e.printStackTrace();            } catch (IOException e) {                e.printStackTrace();            }finally{                   try {                    if (in != null) {                         in.close();                     }                    if (out != null) {                          out.flush();                        out.close();                        }                 } catch (IOException e) {                    e.printStackTrace();                }            }        }    }
原创粉丝点击