js请求url下载pdf文件,没有弹出下载的文件

之前写的方法,通过jQuery的post方法请求PDF下载地址,按F12,查询网络请求结果是200,但是不会弹出下载的文件。

这个时候再双击URL地址再次提交请求,结果就会弹出PDF文件,又可以下载了。

点击调用的js方法如下:

该方法不会弹出下载的文件,只返回二进制流文件

function doBatchPrintReport(idDataGrid) {
    var rows = $('#' + idDataGrid).datagrid('getSelections');// 获取所有选中的行
    var params = new Array();
    if (rows.length > 0) {
        for (var i = 0; rows && i < rows.length; i++) {
            if (isNotEmpty(rows[i].fileName)) {
                if (rows[i].fileName.indexOf("zip") != -1) {
                    doMessageInfo("为zip文件,暂不支持!");
                    return;
                }
                params.push({
                    name : 'filePk',
                    value : rows[i].filePk
                });
            } else {
                doMessageInfo("未生成PDF文件");
                return;
            }
        }
    } else {
        doMessageInfo("请选择明细!");
        return;
    }
    var vUrl = doWrapperUrl('sysfile/download.action');
    $.post(vUrl, params, function(result) {
        if (result.success) {
            if (idDataGrid != null) {
                $('#' + idDataGrid).datagrid('reload');
            }
        } else {
            // 显示错误信息
            doMessageError(result);
        }
    }, 'json');
}

两次请求的方法、参数等都是一样的,直接访问url和通过方法访问url结果是不一样的

修改JS方法中的url请求方式:

该方法会弹出下载的pdf文件

/**
 * 批量打印PDF文件
 * @param idDataGrid
 */
function doBatchPrintReport(idDataGrid) {
    var rows = $('#' + idDataGrid).datagrid('getSelections');// 获取所有选中的行
    var params = new Array();
    if (rows.length > 0) {
        for (var i = 0; rows && i < rows.length; i++) {
            if (isNotEmpty(rows[i].fileName)) {
                if (rows[i].fileName.indexOf("zip") != -1) {
                    doMessageInfo("zip文件,暂不支持!");
                    return;
                }
                params.push(rows[i].filePk);
            } else {
                doMessageInfo("未生PDF!");
                return;
            }
        }
    } else {
        doMessageInfo("请选择明细!");
        return;
    }
    var vDownloadUrl = '/webapp/sysfile/download.json?filePk=' + params.join();
    window.location.href = encodeURI(vDownloadUrl);
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值