ajax formdata java,FormData+Ajax 实现多文件上传 学习使用FormData对象

本文介绍了如何利用JavaScript的Dropzone库和FormData对象实现多文件上传功能。通过设置Dropzone对象的参数,如最大文件数量和格式限制,可以自定义上传规则。在文件添加到Dropzone后,使用FormData对象将文件信息添加到数据包中,并通过Ajax发送到后台。关键步骤包括禁用自动上传、监听addedfile事件和设置Ajax请求的配置选项。
摘要由CSDN通过智能技术生成

FormData对象是为序列化表以及建立与表单格式相同的数据(固然是用于XHR传输)提供便利。javascript

今天咱们使用dropzone和FormData实现多文件上传功能。java

var SAMP = null; //Dropzone对象

SAMP = new Dropzone("#dropzone",

{

url: "#", //后台响应的连接

maxFiles: 4, //最大能够传输的文件数量 目前咱们设定为1

maxFilesize: 2048, //文件大小的限制

acceptedFiles: ".png,.jpg,.gif,.jpeg,.bmp", // 文件格式的限制

autoProcessQueue:false, //文件是否自动传回到后台

myAwesomeDropzone:false,

})

咱们设置文件不自动上传,而经过控件按钮实现上传功能。首先咱们建立一个Dropzone对象,设置上传的最大文件数量,文件大小等。ajax

var myFormData = new FormData()

建立Form Data对象app

SAMP.on("addedfile", function(file) {

myFormData.append(file.name, file)

})

给Dropzone对象注册addedfile事件,当上传文件时,FormData对象的append()函数是以键值对的方式向myFormData成对成对的增添图片对象。函数

$.ajax({

type:'POST',

url:"#",

data:myFormData,

processData: false,//*必须写

contentType: false,//*必须写

success:function(data){

...

},

error:function(){

...

}

});

在使用FormData对象经过Ajax向后台传数据时,必须在选项中设置"processData: false,contentType: false,"两项,不然会报错。url

processData设置为false。由于data值是FormData对象,不须要对数据作处理。orm

contentType设置为false。由于是由

表单构造的FormData对象,且已经声明了属性enctype="multipart/form-data",因此这里设置为

false。对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值