Так что я пытаюсь загрузить файл изображения с 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» выходит как нуль, так что это заставляет меня верить, что данные из входного потока не действительные данные изображения.
У кого-нибудь есть опыт работы с этим и может указать мне в правильном направлении?
Вы задаете тип файла двоичным? Можете ли вы получить данные успешно, но сами читаете входной поток? –