Дисплей PDF в браузере с использованием Java Servlet

У меня есть файл PDF в моем приложении. Мне нужно отобразить PDF в браузере. Я читаю файл в качестве файловой учетной сети, мне нужно отобразить PDF в браузере с моим приложением. Но у меня нет пути PDF, у меня есть поток файлов.

Пожалуйста, дайте мне несколько предложений и примеров


Я использовал AJAX для отображения PDF, я использую метод Call_Method () JavaScript Ajax Explate для вызова действия ShowPDF, в действии ShowPDF просто преобразование файла PDF в виде ByteArRayoutPuretStream и Напишите результат в поставке потока. Но это показывает ниже младший результат.

Результат в JSP :

% PDF-1,4% ��� 1 Endstream Endobj 4 0 OBJ <>>> / MediaBox [0 0 595 842] >> Endobj 1 0 OBJ <> Endobj 3 0 OBJ <> Endobj 5 0 OBJ <> Endobj 6 0 OBJ <> Endobj Xref 0 7 000000000000 65535 F 000000015 00000 N 0000000477 00000 N 0000000232 00000 N 0000000540 00000 N 0000000585 00000 N Прицеп << 142354F5EBEFD65D6AACD33A7CB2B4AB>] / info 6 0 R / Размер 7 >> StartXref 707 %% EOF

Пожалуйста, дайте некоторое предложение.

JavaScript AJAX:

call_method(); <br/>
function call_method(){

    Ext.Ajax.request({
            waitMsg: 'Saving changes...',
            url:'test.action?method=showPdf',
            params : { },       
            failure:function(response,options){

            },
            success:function(response,options){
                $("#pdf_content").show();               
                $("#pdf_content").html(response.responseText);
                $("#pdf_content").show('slow');
            }
    });
}

Методы Java:

public String showPdf() throws IOException {

    getResponse().setContentType("application/pdf");

    getResponse().setHeader("Content-disposition","inline; filename=automatic_start.pdf" );


    ByteArrayOutputStream baos = getByteArrayOutputStream();

    getResponse().setContentLength(baos.size());

    ServletOutputStream sos;

    sos = getResponse().getOutputStream();

    baos.writeTo(sos);

    sos.flush();

    return null;
}


private ByteArrayOutputStream getByteArrayOutputStream() throws IOException {

    String filePath = "/homefolder/";

    String folderPath=filePath+"1122/automatic_start.pdf";

    File file = new File(folderPath);

    FileInputStream fis = new FileInputStream(file);



    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    byte[] buf = new byte[256];
     try {
            for (int readNum; (readNum = fis.read(buf)) != -1;) {
                bos.write(buf, 0, readNum); //no doubt here is 0
                //Writes len bytes from the specified byte array starting at offset off to this byte array output stream.
                System.out.println("read " + readNum + " bytes,");
            }

        } catch (IOException ex) {
            ex.printStackTrace();
        }


    return bos;
}
7
задан Mohamed Amine 24 July 2013 в 12:38
поделиться