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