因此我试图从FTP站点下载图像文件,从中获取一些元数据,然后使用Play将二进制数据返回到网页!框架。下面是我使用一个控制器动作内部的基本代码(去掉了所有的错误检查简洁):Java apache commons FTP,如何将图像文件下载到BufferedImage
FTPClient ftp = new FTPClient();
ftp.connect(site.host, site.port);
ftp.login(site.username, site.password);
InputStream is = ftp.retrieveFileStream("somefile.png");
Response.current().contentType = "image/png";
renderBinary(is);
我知道,真正的类型的输入流是一个SocketInputStream,是有什么特别的,我需要能够使用它吗?
我也试过这样:
BufferedImage bimg = ImageIO.read(is);
但“BIMG”出来为空,所以这使我相信,从输入流中的数据是无效的图像数据。
有没有人有这样的经验,可以指出我在正确的方向吗?
你是否将文件类型设置为二进制?你能够成功获取数据,但你自己读取输入流吗? – 2011-01-29 03:34:26