2012-05-03 3 views
0

У меня есть файл pdf-файла и файл pdf в моем классе POJO. Я хочу загрузить thee pdf с помощью сервлета. Пожалуйста, скажите мне, как это сделать. Местоположение файла =/tmp/SWBC_444Thu 03 май 20:01:07 IST 20124366242221752147545.pdf Используя это расположение файла, я хочу предложить пользователю загрузить файл в формате pdf.скачать отчет как pdf с помощью сервлета

Вот мой код.

File file = new File(filePath); 
    OutputStream responseOutputStream = response.getOutputStream(); 
    response.setContentLength((int)filePath.length()); 
    FileInputStream fileInputStream = new FileInputStream(file); 
    int size = fileInputStream.available(); 
    byte[] content = new byte[size]; 
    int bytesRead; 
    while ((bytesRead = fileInputStream.read(content)) != -1) 
    { 
    responseOutputStream.write(content, 0, bytesRead); 
    } 
    responseOutputStream.flush(); 
    fileInputStream.close(); 
    responseOutputStream.close(); 

. Я читаю и генерирую файл, но при открытии файла его пустой.

Thank you ..!

+0

Вы можете просмотреть эти сообщения: [JasperReports: Вызов отчета из сервлета] (http://stackoverflow.com/questions/2399507/jasperreports-calling-report-from-servlet) & [Загрузка отчета не подсказывает пользователю сохранить] (http://stackoverflow.com/questions/6085049/report-download-not-prompting-user-to-save). Поиск по SO отлично работает;) –

+0

Файл file = new File (filePath); ServletOutputStream servletOutputStream = response.getOutputStream(); ; BufferedInputStream bufferIput = null; FileInputStream fileInputStream = новый FileInputStream (файл); bufferIput = new BufferedInputStream (fileInputStream); byte [] bBuffer = новый байт [fileInputStream.available()]; int nBytes = -1; while ((nBytes = bufferIput.read (bBuffer, 0, bBuffer.length)) ! = -1) { servletOutputStream.write (bBuffer, 0, nBytes); } Проблема решена. Вы можете использовать этот код для чтения pdf-файла и загрузить – Stephen

+0

Вы можете отправить решение в качестве ответа, чтобы помочь другим –

ответ

0

httpservletresponse.setHeader ("Content-disposition", "attachment; filename = \" "+ title +" .pdf \ "");

+0

Я сделал это. Я имею в виду его базовую вещь для pdf. В любом случае, теперь я читаю pdf-файл из указанного местоположения файла и создается файл pdf, но когда я открываю файл, он ничего не отображает, File – Stephen

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