使用from表单方式下载文件时数组对象格式
- 2026-09-18 10:48:31
使用from表单方式下载文件时数组对象格式
一、背景
客户下载文件需要批量下载文件,之前的下载功能只支持下载同一个编号下的样品文件,后台接口参数为对象,{receivecode:code,sampleCode:samplecodes},当选择多个文件时,sampleCode需要将文件对应的样品编号逗号隔开传给后台。
而客户的新需要需要能同时下载不同编号下的样品文件,后台接口参数为数组对象格式。
二、传参方式
网上查了一下需要以下面这种方式传参
<input type="text" name="param[0].id"><input type="text" name="param[0].name"><input type="text" name="param[1].id"><input type="text" name="param[1].name"><input type="text" name="param[2].id"><input type="text" name="param[2].name">
但是如果客户需要下载十几二十个报告,就不能一个一个写了,调整了一下,具体代码如下:
function DownloadPDFReport() {var rows = $("#dgReportList").bootstrapTable('getSelections');if (rows.length == 0) {toastr.warning("请选择要下载的PDF!");return false;}var TaskSource = rows[0].TaskSource;var params= [];$.each(rows, function (n, row) {params.push({ receivecode: row.Receivecode, sampleCode: row.SampleCode});});var frm = $('<form action="url接口" method="post" id="fm1" target="_blank"></form>');params.map(function (val, index) {for (var key_sub in val) {var input1 = $("<input>");input1.attr("type", "hidden");input1.attr("name", 'param[' + index + '].' + key_sub);input1.attr("value", val[key_sub]);frm.append(input1);}});frm.appendTo(document.body).submit();frm.remove();}
调整后调试,后台可以正常接收到参数并且能正常下载文件。
三、另外将对象传参方式附上:
1、当参数固定只有少数可以直接如下方式拼接:
var frm = $('<form action="url接口" method="post" id="fm1" target="_blank"></form>');var con = $("<input type=\"text\" name=\"receiveCode\" value=\""+ receivecode +"\"><input type=\"text\" name=\"samplecodes\" value=\""+ result +"\"> ");con.appendTo(frm);frm.appendTo(document.body).submit();frm.remove();
2、当下载文件参数有多个并且,参数可能随时增加(例如,根据查询条件将数据导出到excel文件时,客户会根据自己需要配置想要的查询条件)
function Export(url) {var flag = true;var frm = $('<form action="' + url + '" method="post" id="frmExport" target="_blank"></form>');var Index = 0, AllIndex = 0;var _param = GetParams();for (var item in _param) {AllIndex++if (!_param[item]) {Index++}frm.append("<input type=\"hidden\" name=\"" + item + "\" value=\"" + _param[item] + "\" />");}if (AllIndex == Index) {toastr.warning("至少选择一个查询条件!");return;}frm.appendTo(document.body).submit();$("#frmExport").remove();}
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。