下载从spring MVC Controller返回的excel文件(Ajax调用)

时间:2016-05-17 13:48:36

标签: excel spring-mvc download xlsx filesaver.js

我正在使用spring boot,spring mvc开发一个Web应用程序。

我有一个contoller方法,它返回一个excel文件,如下所示:

in = new FileInputStream(comparsionreport);
    out = response.getOutputStream();
    response.setHeader("Content-disposition", "attachment; filename=" + comparsionreport.getName());
    response.setContentType("application/vnd.ms-excel");
    response.addHeader("filename", comparsionreport.getName());
    byte[] buffer = new byte[BUFFER_SIZE]; // use bigger if you want
    int length = 0;
    while ((length = in.read(buffer)) > 0) {
        out.write(buffer, 0, length);
    }
    in.close();
    out.close();

在视图(jaavscript)中,AJAX调用如下所示:

$.ajax({
            url : $('#compareFrm').attr('action'),
            type : 'post',
            responseType: "arraybuffer",
            data : $('#compareFrm').serialize(),
            success : function(data, status, xhr) {
                // download response file
                var jsonData = JSON.stringify(data);
                var blob = new Blob(
                        [ jsonData ],
                        {
                            type: "application/vnd.ms-excel"
                        });
                saveAs(blob, xhr.getResponseHeader('filename'));
            },
            error : function(data) {
            }
            });

下载了具有良好名称的excel文件,但是当打开它时,它表示文件无法打开,因为错误的扩展名或格式(损坏的文件等等)

有人有个主意吗?这对我来说是一个阻碍问题:(

由于

0 个答案:

没有答案