Layui解决upload的data参数传输失败问题

前言

        layui上传文件时,有时候需要往后台多传递一些自定义的参数。

问题

        按照官方的写法upload.render初始化的data:{id:"sss"}不能传参到后台。如下图所示:

分析

        1、如果直接给{id:"sss"}无效,但如果在before里,this.data.id="sss" 却是有效。

        2、经过多次测试及理解,应该是data接收的是严紧的JSON格式如{"ID":"sss"}

        3、但这个是公用的上传EXCEl界面,所以data参数是由父窗体传过来的,所以独立进行了JSON.stringify(jsonParams);后再JSON.parse()。

解决

        在before里使用this.data.id="sss" 是可以接收到的,具体的写法如下:

before: function(obj) {
    this.data = {"xxx": "xxx"};
 }

        实际使用:

  //指定具体的一个上传按钮
  upload.render({
         elem: '#uploadBtn' //绑定元素
         , url: ctxPath + 'performanceDataImport/importExcel' //上传接口
         , accept: 'file'
         , exts: 'xls|xlsx'
         , before: function (obj) { //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
             this.data = {
                 id: "sss",
                 examineYear: $("#examineYear").val(),
                 examineQuarter:$("#examineQuarter").val()
             };
             layer.load(); //上传loading
  }
/**
     * 导入excel文件
     * @param file
     * @return
     */
    @RequestMapping(value = "importExcel", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    @ResponseBody
    public LayUiAdminResultVo importExecutionData(@RequestPart(value = "file") MultipartFile file,HttpServletRequest request,
                                                  String examineYear,String examineQuarter,String id) {

效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值