0

I'm trying to download a file through Ajax post request. But I'm not able to do this, I tried a lot but I am not getting. The bellow is the code, please guide me how to do this.

Query method

 $(document).on({click: function() {
            var elementId = $(this).attr('id').split("_");
            var air = $('#itineraryAir_${formBean.tripDetailsId}').is(':checked');
            var car = $('#itineraryCar_${formBean.tripDetailsId}').is(':checked');
            var hotel = $('#itineraryHotel_${formBean.tripDetailsId}').is(':checked');
            if(air == true || car == true || hotel ==  true){    
                $('#itinerary_modal').modal( 'hide');
            $.ajax({
                url: "<%=request.getContextPath()%>/viewBooking/downloadItinerary/" +air+"/"+car+"/"+hotel+"/"+elementId[2],
                type: 'POST',
                dataType: 'text/json',
                beforeSend: function() {
                },
                success: function(data) {

               },
                complete: function() {
               }

            }, '.edit_hotel');
        }else{
            var result="Select itinerary." 
                showMsg($("#ItineraryMsg"),result,"alert-danger");
        }
        }
        }, '.it_download');  

In the above code, I'm getting Element-Id, air, car and hotel details and passing all these value through URL. In spring controller class dynamically I am generating PDF file and the file is generating, But I am not able to display for user to download it.

Server side code

    //the below line of code to generate pdf file. It is generating pdf file but I am not able to pass to client.

        public @ResponseBody void downloadInPDF(@PathVariable("air") Boolean air,
                    @PathVariable("car") Boolean car,
                    @PathVariable("hotel") Boolean hotel,
                    @PathVariable("tripDetailsId") String tripDetailsId,
                    HttpServletResponse response,HttpServletRequest request) throws IOException {
                TripDetails td = tripDetailsService.get(Integer.parseInt(tripDetailsId));
                Users user=userService.getByUserIdNew(String.valueOf(td.getUser().getUserId()));
                Employee employee=employeeService.getEmployeeByEmployeeId(user.getEmployee().getEmployeeId());
                if(hotel == true){
                    List<TripHotels> tripHotels = hotelService
                            .getHotelDetailsByTripId(td);

                    generatePdf.getPdfFileHotel(AppConstant.ETICKET_PATH, tripHotels, td,employee);

                        String filePathToBeServed = AppConstant.ETICKET_PATH + td.getTripId()
                                + "_Hotel.pdf";
                            File fileToDownload = new File(filePathToBeServed);
                        InputStream inputStream = new FileInputStream(fileToDownload);
                        response.setContentType("application/pdf");
                        response.setHeader("Content-Disposition", "attachment; filename="+td.getTripId() + "_Hotel.pdf");
                        IOUtils.copy(inputStream, response.getOutputStream());
                        response.flushBuffer();
                        inputStream.close();
                }
            }
Stefan
  • 12,108
  • 5
  • 47
  • 66

0 Answers0