У меня есть требование, когда я получаю несколько изображений из веб-службы (например: список) и должен записывать эти изображения в ServletOutputStream.Написание нескольких изображений на ServletOuputStream?
Когда я нажимаю ссылку «VIEW», он вызывает сервлет и этот сервлет вызывает веб-сервис и получает несколько изображений в виде списка.
Сейчас я пытаюсь написать эти образы в ServletOutputStream, который не работает ..
Попытка отправить изображения как почтовый
response.setContentType("application/zip");
OutputStream os = null;
BufferedOutputStream bos = null;
ZipOutputStream zos = null;
try{
os = resp.getOutputStream();
bos = new BufferedOutputStream(os);
zos = new ZipOutputStream(bos);
zos.setLevel(ZipOutputStream.STORED);
sendMultipleFiles(zos, annotContent,"display");
}catch (IOException e) {
resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
} finally {
if (zos != null) {
zos.finish();
zos.flush();
}
bos.close();
os.close();
}
private void sendMultipleFiles(ZipOutputStream zos, Collection<byte[]> filesToSend, String name) throws IOException {
myLogger.info("sendMultipleFiles is invoked..");
for(byte[] f: filesToSend) {
InputStream inStream = null;
ZipEntry ze = null;
try {
inStream = new ByteArrayInputStream(f);
ze = new ZipEntry(name + "-archived");
ze.setComment("Dummy file");
zos.putNextEntry(ze);
int readByte = 0;
while((readByte = inStream.read()) != -1)
{
zos.write(readByte);
}
} catch (IOException e) {
System.out.println("Cannot find ");
} finally {
if (ze != null) {
zos.closeEntry();
}
inStream.close();
}
}
выше код не working..any предложения будут оценивается ..
Вы должны создать zip-файл и добавить каждое изображение туда по одному. Затем напишите содержимое zip-файла в OutputStream. –
Что клиент в этом случае? Обычно вы будете обслуживать HTML, который будет относиться к нескольким изображениям, каждый из которых вызовет отдельный запрос. Пожалуйста, дайте нам больше контекста. –
@ Jon Skeet: Использование JSF .. Когда я нажимаю на ссылку «VIEW», она должна вызывать сервлет, а ответ (изображения) должен отображаться как всплывающее окно. –