let fd = new FormData() // 定义传递的序列化对象,
for (let i = 0; i < addArr.length; i++) { // addArr是选中文件的输入框中的e.target.files
fd.append(addArr[i].name + "", addArr[i]) //通过append()将键名和值放进去
}
此时将上传的文件序列化后,如果还有其他需要上传的参数params
const params = {
company: $('.save-submit-data').eq(0).val(),
actual_initiator: $.trim($('.cascade-select-value').eq(0).text()),
person: $('.save-submit-data').eq(1).val(),
phone: $('.save-submit-data').eq(2).val(),
lend_date: $('.save-submit-data').eq(3).val(),
deadline: $('.save-submit-data').eq(4).val(),
amount: $('.save-submit-data').eq(5).val(),
estimation: $('.aboutGoods').eq(0).val(),
consignee: $('.getGoodsPerson').eq(0).val(),
consignee_phone: $('.getPersonName').eq(0).val(),
delivery_address: $('.getGoodsAddress').eq(0).val(),
images: JSON.stringify(purePicSave),
details: JSON.stringify(detail) // 数组必需使用JSON.stringfy转换为字符串
}

for (key in params) {
fd.append(key + "", params[key]) // 中间的双引号必填,因为这样才能正确序列化其他的参数传递给后台
}

$.ajax({
type: 'POST',
url: "{:url('examine_approve/lend')}", // 路径
data: fd, // 序列化对象
dataType: 'json', // 定义后台返回的数据类型
processData: false, // 必需
contentType: false, // 必需
success: function (res) {
if (res.code == 200) {
dialog.message(res.msg)
setTimeout(function () {
window.location.reload()
}, 1500)
} else {
dialog.message(res.msg, false)
$('.save-data').css('background', '#1E9FFF')
$('.save-data').attr('disabled', false)
}
},
error: function (err) {
console.log(err)
$('.save-data').css('background', '#1E9FFF')
$('.save-data').attr('disabled', false)
}
});

js上传文件到后台时序列化数据的更多相关文章

  1. 通过form表单上传文件获取后台传来的数据

    小伙伴是不是遇到过这样的问题,通过submit提交form表单的时候,不知怎么获取后台传来的返回值.有的小伙伴就会说你不会发送ajax,其实也会.假如提交的form表单中含有文件,怎么办? 步骤1:想 ...

  2. 使用ajaxfileupload.js上传文件

    一直以来上传文件都是使用form表单上传文件,也看到过有人使用js上传文件,不过看起来蛮简单的也就没有怎么去理会.今天突然要使用这种方式上传文件,期间还遇到点问题.因此就记录下来,方便以后遇到这样的问 ...

  3. js上传文件

    一.原始的XMLHttpRequestjs上传文件过程(參考地址:http://blog.sina.com.cn/s/blog_5d64f7e3010127ns.html) 用到两个对象 第一个对象: ...

  4. 纯js上传文件 很好用

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  5. 记录一次node中台转发表单上传文件到后台过程

    首发掘金 记录一次node中台转发表单上传文件到后台过程 本篇跟掘金为同一个作者leung   公司几个项目都是三层架构模式即前台,中台(中间层),后台.前台微信端公众号使用vue框架,后台管理前端使 ...

  6. js 上传文件后缀名的判断 var flag=false;应用

    js 上传文件后缀名的判断  var flag=false;应用 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional// ...

  7. js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中

    ajaxfileupload.js jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId ...

  8. atitit.javascript js 上传文件的本地预览

    atitit.javascript js 上传文件的本地预览 1. .URL.createObjectURL  1 1.1. 吊销所有使用 URL.createObjectURL 而创建的 URL,以 ...

  9. 解决上传文件或图片时选择相同文件无法触发change事件的问题

    昨天在做一个上传文件的模块时遇到了这样的问题:打开文件一上传,上传成功后再次点击文件一,change事件无反应 <input type="file" name="f ...

随机推荐

  1. Java for LeetCode 117 Populating Next Right Pointers in Each Node II

    Follow up for problem "Populating Next Right Pointers in Each Node". What if the given tre ...

  2. 升级pip3的正确姿势

    如果你的电脑里装了两个python,就会有两个pip,一个是pip2,一个是pip3,还有可能出现一个既没有2也没有3的pip,一般情况下,pip等于pip2 有时候我们使用pip安装东西会提示我们p ...

  3. 常用js方法函数

    常用方法函数 1.深复制 // 1.深复制 function deepCopy(source) { var result = {}; for (var key in source) { result[ ...

  4. (linux)BSP(板上支持包)概述

    1. BSP概述 BSP即Board Support Package,板级支持包. 它来源于嵌入式操作系统与硬件无关的设计思想,操作系统被设计为运行在虚拟的硬件平台上. 对于具体的硬件平台,与硬件相关 ...

  5. jQuery/CSS3实现Android Dock效果

    在线演示 本地下载

  6. 话说文件系统——aufs源码分析(三)【转】

    本文转载自:http://www.cnblogs.com/xie0812/p/8848185.html 1. linux中设备驱动的入口都是:module_init(xxx_init);里面注册的函数 ...

  7. python- 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

    1.双层装饰器 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = Fa ...

  8. Android Studio 字体大小和背景色的设置

    豆绿色的RGB值:#C7EDCC 1.打开Android Studio——>Ctrl+Alt+s 或者 File——>Settings 2.在弹窗中选中“Colors&Fonts” ...

  9. 线程绑定CPU核-sched_setaffinity

    CPU亲合力就是指在Linux系统中能够将一个或多个进程绑定到一个或多个处理器上运行. 一个进程的CPU亲合力掩码决定了该进程将在哪个或哪几个CPU上运行.在一个多处理器系统中,设置CPU亲合力的掩码 ...

  10. linux命令学习笔记:cut详解

    cut命令从文件的每一行剪切字节.字符和字段并将它们写至标准输出.它是以文件的每一行作为处理对象的. 命令格式:cut [选项] [范围] 文件.选项用来指定单位(字节.字符还是字段),范围指定选项的 ...