Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как написать файл PDF в браузере с помощью сервлета?

Автор вопроса: javasundaramОтветов: 1

здесь приведенный ниже код пытается записать файл PDF с локального компьютера в браузер, но здесь не записывает файл в браузер

String pdfFileName = "hello1.pdf";
            String contextPath = "";
                    contextPath = "/home/admin/Desktop/";
            File pdfFile = new File(contextPath + pdfFileName);
                    FileInputStream fileInputStream = new FileInputStream(pdfFile);
            response.setContentType("application/pdf");
            response.addHeader("Content-Disposition", "attachment; filename=" + pdfFileName);
            response.setContentLength((int) pdfFile.length());
            OutputStream responseOutputStream = response.getOutputStream();
                    System.out.println("fileInputstream length : " + fileInputStream.available());
            int length;
                    byte[] buffer = new byte[4096];
            while ((length = fileInputStream.read(buffer)) > 0) {
                responseOutputStream.write(buffer, 0, length);
            }
                    System.out.println(" outputstream length : " + responseOutputStream.toString());
                    fileInputStream.close();
                    responseOutputStream.flush();
                    responseOutputStream.close();
  • Можете ли вы более подробно описать, что происходит, когда вы обращаетесь к сервлету с запросом? что-нибудь возвращено обратно? Tim Biegeleisen 06.07.2015
  • @Tim Biegeleisen, проблема в том, что я пытаюсь открыть данные ответа в браузере, но это не удается javasundaram 06.07.2015
  • Я подозреваю, что файл PDF пишется неправильно, и ваш браузер давится им, когда пытается его открыть. Tim Biegeleisen 06.07.2015
  • Убедитесь, что этот PDF-файл не поврежден. Можете ли вы открыть его на своем сервере или загрузить каким-либо другим способом и открыть? Tim Biegeleisen 06.07.2015
  • @Tim Biegeleisen Файл не поврежден при открытии вручную javasundaram 06.07.2015
  • Сохраните PDF-файл в том виде, в котором он был получен браузером, и сравните его с оригиналом. Чем они отличаются? mkl 06.07.2015

javapdfresponseservletsfileoutputstream

Ответы

Ответ 1 · рейтинг 1 · HaRLoFei

в вашем операторе кода:

response.addHeader("Content-Disposition", "attachment; filename=" + pdfFileName);

измените "вложение" на "встроенное", как показано ниже:

response.addHeader("Content-Disposition", "inline; filename=" + pdfFileName);

Затем файл PDF откроется автоматически

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы