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

здесь приведенный ниже код пытается записать файл 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();

person javasundaram    schedule 06.07.2015    source источник
comment
Можете ли вы более подробно описать, что происходит, когда вы обращаетесь к сервлету с запросом? что-нибудь возвращено обратно?   -  person Tim Biegeleisen    schedule 06.07.2015
comment
@Tim Biegeleisen, проблема в том, что я пытаюсь открыть данные ответа в браузере, но это не удается   -  person javasundaram    schedule 06.07.2015
comment
Я подозреваю, что файл PDF пишется неправильно, и ваш браузер давится им, когда пытается его открыть.   -  person Tim Biegeleisen    schedule 06.07.2015
comment
Убедитесь, что этот PDF-файл не поврежден. Можете ли вы открыть его на своем сервере или загрузить каким-либо другим способом и открыть?   -  person Tim Biegeleisen    schedule 06.07.2015
comment
@Tim Biegeleisen Файл не поврежден при открытии вручную   -  person javasundaram    schedule 06.07.2015
comment
Сохраните PDF-файл в том виде, в котором он был получен браузером, и сравните его с оригиналом. Чем они отличаются?   -  person mkl    schedule 06.07.2015


Ответы (1)


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

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

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

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

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

person HaRLoFei    schedule 06.07.2015