2014-01-02 2 views
0

Мой код Java выглядит следующим образом.Не удалось получить доступ к изображению, размещенному на сервере Apache, с использованием кода Java

String imgSrc= GlobalConstants.CDN_SERVER+ "/images/generic_image.gif";      
BufferedImage originalImage=ImageIO.read(new File(imgSrc)); 
ByteArrayOutputStream baos=new ByteArrayOutputStream(); 
ImageIO.write(originalImage, "jpg", baos); 
byte[] imageInByte=baos.toByteArray(); 

Я принимал мои файлы в Apache HTTP сервер.

GlobalConstants.CDN_SERVER является "http://localhost/abc"

Я пытаюсь получить доступ к generic_image.gif от Apache разъединяет, но он бросает эту ошибку на второй линии code.i.e. BufferedImage originalImage=ImageIO.read(new File(imgSrc))

javax.imageio.IIOException: Can't read input file! 
javax.imageio.IIOException: Can't read input file! 
    at javax.imageio.ImageIO.read(Unknown Source) 

Но если я пытаюсь получить доступ к такой же образ от JSP, что он работает нормально. то есть

<src="<%=GlobalConstants.CDN_SERVER%>/images/generic_image.gif"/> 

Я делаю что-то неправильно? Направляйте мне спасибо.

+0

Спасибо @Sotirios Delimanolis для редактирования моего кода. – Sthita

+0

Имеются ли такие URL-адреса, как 'http: // localhost/abc/images/generic_image.gif', обслуживаемые одним и тем же http-сервером? –

+0

Да абсолютно правый. – Sthita

ответ

1

попробовать следующий код

URL url = new URL(GlobalConstants.CDN_SERVER+ "/images/generic_image.gif"); 
BufferedImage originalImage = ImageIO.read(url); 
+0

Удивительный ... Это сработало! – Sthita

+0

Можете ли вы объяснить мне, что не так в моем коде и почему он не работает? @sasankad – Sthita

+1

@Sthita, объект File представляет собой файл на компьютере, где работает код. Таким образом, изображения/файлы на других компьютерах, размещенных через веб, не могут быть представлены объектом File, начиная с http: // – sasankad

Смежные вопросы