2012-08-02 1 views
4

Я хочу экспортировать данные из таблицы данных Rich Faces. Я создал outputStream из данных таблицы данных. Теперь вы хотите отправить этот OutputStream в браузер и сохранить его. Как я могу это сделать?Отправка OutputStream в браузер и разрешение браузера сохранить его

FileOutputStream stream = new FileOutputStream(new File(PATH));

OutputStream out = myMthodToCreateOutPutStream();

Теперь, как сохранить этот out в браузере.

ответ

12

Непонятно, откуда вы читаете свои данные. Вам нужно создать InputStream для чтения данных.

Затем, сначала необходимо установить заголовки ответа на

HttpServletResponse.setHeader("Content-Disposition", "attachment; filename=datafile.xls"); 

Используйте то, что имя файла вам нужно.

Затем установите мим-тип:

response.setContentType("application/vnd.ms-excel"); 

Используйте мим-типа вам нужно.

Затем нужно использовать объект ответа, чтобы получить его OutputStream -

OutputStream outStream = response.getOutputStream(); 

Теперь писать:

byte[] buf = new byte[4096]; 
int len = -1; 

//Write the file contents to the servlet response 
//Using a buffer of 4kb (configurable). This can be 
//optimized based on web server and app server 
//properties 
while ((len = inStream.read(buf)) != -1) { 
    outStream.write(buf, 0, len); 
} 

outStream.flush(); 
outStream.close(); 
+0

Это анс дает мне подсказку, чтобы решить мою проблему .. Большое спасибо –

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