从FTP下载图片返回文件流在页面显示图片

.HTML


 

.JS

$("#showPicture").append("");

.Controller
@RequestMapping("getFtpImage")
@ResponseBody
public  void getFtpImage (String workId,HttpServletResponse response,@RequestParam String filepath) throws InterruptedException {  
        //创建FTP连接
        FTPClient ftp = null;
        OutputStream outStream  = null;
        InputStream in = null;
        try {
            ftp= initFTP(ftp);
            //下载文件
            in = ftp.retrieveFileStream(filepath);
            String picType = filepath.split("\\.")[1];
            BufferedImage bufImg = null;
            bufImg = ImageIO.read(in);
            outStream = response.getOutputStream();
            ImageIO.write(bufImg,  picType, outStream);

        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(in!=null) {
                try {
                    in.close();
                    destroy(ftp);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }        
    }  

    //FTP初始化
    public  FTPClient initFTP(FTPClient ftp) throws IOException {
        
        InputStream in =  UploadToFtpController.class.getResourceAsStream("/application.properties");
        Properties properties=new Properties();
        properties.load(in);
        String addr = properties.getProperty("ftp_url");
        int port=Integer.valueOf(properties.getProperty("ftp_port")).intValue();
        String username=properties.getProperty("ftp_username");
        String password=properties.getProperty("ftp_password");
        ftp = new FTPClient();
        ftp.connect(addr,port);
        ftp.login(username,password);
        ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
        ftp.setControlEncoding("GBK");
        ftp.setBufferSize(1024*1024*10); //设置缓冲区上传速度为10M,默认为1K
        ftp.setFileType(FTP.BINARY_FILE_TYPE);//设置上传方式位字节      
        ftp.enterLocalPassiveMode();//Switch to passive mode
        return ftp;
    }
    //关闭FTP
    public void destroy(FTPClient ftp) throws IOException {
        if(ftp != null){
            ftp.disconnect();
            ftp = null;
        }
    }

你可能感兴趣的:(从FTP下载图片返回文件流在页面显示图片)