• Home
  • Jobs
  • Courses
  • Teachers
  • For business
  • Blog
  • ES/EN

0

26
Views
Using AJAX to call the controller and download a file

I am trying to download a file from the server side. I need to call the function using AJAX. I have tested if the download works without using AJAX, just testing the URL directly in the web browser, it works. But when I try to use AJAX, it executes the function but the response does not work.

CONTROLLER:

@RequestMapping(value = "descargaUsuaris", method = RequestMethod.GET) 
    public final void descargaUsuaris(HttpServletResponse response) throws IOException, ParseException {
        byte[] processedFile = getUsuaris();
         
        JSONObject output;
        try {
            output = new JSONObject(new String(processedFile, StandardCharsets.UTF_8));
            JSONArray docs = output.getJSONArray("data");

            File file = new File("temp/" + "temp_csv.csv");
            File file2 = new File("temp/" + "usuaris.csv");
            

            jsonToCsv(docs, file, file2);

            file.delete();
            ContentDisposition disposition = ContentDisposition.builder( "attachment" )
                    .filename( "taulaMatriculaEstudiant.csv", StandardCharsets.UTF_8 )
                    .build();
                response.setContentType( "text/csv" );
                response.setHeader( "Cache-Control", "no-cache" );
                response.setHeader( "Expires", "0" );
                response.setHeader( "Pragma", "no-cache" );

                OutputStream  out = response.getOutputStream();
                IOUtils.copy( new FileInputStream( file2.getAbsolutePath() ), out  ); // IOUtils from Apache Commons-IO
                out.flush();
                file2.delete();

        } catch (Exception e) {
            e.printStackTrace();
        }
            
            
        

    }

JAVASCRIPT:

function descargaUsuaris(data) {

    var url = "/9avaldoval/administracio/descargaUsuaris";
    var form = $('#formAdmBlue');
    $.ajax({
        url: url,
        type: 'GET',
        data: form.serialize(),
        success: function() {
            
        }


    });

}
16 days ago ·

Santiago Trujillo

Answer question
Find remote jobs
Loading

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post job Plans Our process Sales
Legal
Terms and conditions Privacy policy
© 2022 PeakU Inc. All Rights Reserved.