因此我試圖從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