Загрузите файл PDF, используя window.location detect null - PullRequest
0 голосов
/ 16 июня 2020

У меня есть веб-сайт, где вы передаете код бронирования, а затем загружается связанный с ним pdf.

У меня вопрос в том случае, если pdf не существует.

Возможно ли управление с помощью window.location? Я должен вернуть с сервера нулевое значение?

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

скачатьPdfBooking. jsp

<script type="text/javascript">

    gProperty="<%=pProperty%>";
    gCodiMuseu="<%=pNomCache%>";

    $(document).ready(function(){
        $('#downloa2dPdf').click(function() {
            var loc = $('#localitzadorReserva').val();
            window.location = "pdf.jsp?code="+code+"&entitat="+gCodiMuseu+"&property="+gProperty; 
            });
    });


</script>


//other stuff
//...
//...

<section class="main-content-wrapper">
    <section id="main-content">
        <div class="container">
            <div class="container-mobile">
                <div class="row">
                    <br>
                    <h3 class="title-text">Website to get the pdf of your booking</h3>
                    <form>
                        <div class="form-group">
                            <label class = "label-text" for="inputLocalitzador">Enter the code of the booking</label>
                            <i class="fa fa-file-pdf-o" aria-hidden="true"></i>
                            <input type="text" class="form-control" id="localitzadorReserva" placeholder="Enter the code">
                        </div>
                         <a  class="button-download button-text"  id="downloa2dPdf" >download pdf <span class="fa fa-file-pdf-o" aria-hidden="true"></span></a>
                    </form> 
                </div>
            </div>
        </div>
    </section>
</section>



pdf. jsp

//other stuff... (create the database connection)
String sql = "select document from gestio_documental where codeBooking='"+code+"'"+ "and codi_entitat='"+entitat+"'";
ResultSet rs = stmt.executeQuery(sql);

InputStream inputStream = null; //la imagen la guardaremos en un InputStream
FileInputStream file = null;

if (rs.next()) {
    inputStream = rs.getBinaryStream(1); //Obtenemos el binario del campo Blob
}

response.setHeader("Content-Disposition","attachment;filename=document.pdf");        
if(inputStream!=null){

    imagen = inputStream; //Esto puede ser extra, despues optimizas

    ServletOutputStream bOut = response.getOutputStream();

    byte[] buffer = new byte[240996];
    for (;;) {
        int nBytes = imagen.read(buffer);
        if (nBytes == -1) {
            break;
        }
        bOut.write(buffer);
    }
    imagen.close();
    bOut.flush();
    bOut.close();
}else{
    response.setContentType("text/html; charset=UTF-8"); 
    out.println("Error");
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...