ajax提交文件 后台获取,Ajax提交含有文件type='file'标签的表单时候,后台获取不到值...

开发过程中,在遇到form中含有文件上传时候,通过ajax与后台交互,后台不能获取到传过去的文件,试了很多方法,最终用这段代码解决了,代码如下

html代码:

js代码:

var form = document.getElementById("importForm");//importForm是form的id

var formdata = new FormData(form);//重点

$.ajax({

url :  baseurl+'/package/uploadPackage',

type : 'post',

contentType: false, //不设置数据类型,必须

processData: false,//禁止序列化数据,必须

dataType :'json',

data:formdata,

xhrFields: {withCredentials: true},//跨域,可根据需要使用

success : function(result) {

if(result.status.code==200){

layer.msg(result.status.statusMsg, {

time: 1200 //2秒关闭(如果不配置,默认是3秒)

}, function(){

//do something

layer.closeAll();

});

}

}

});

return false;//这整段代码是写在success的回调里边的,return false可以阻止表单提交

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是实现 jQuery 动态添加 input type=file 文件上传域并全部信息填写完后通过 ajax 提交的代码。 HTML 代码: ```html <form id="upload-form"> <div id="file-list"></div> <button id="add-file">添加文件</button> <button type="submit">提交</button> </form> ``` JavaScript 代码: ```javascript $(function() { var fileList = $('#file-list'); var addButton = $('#add-file'); var uploadForm = $('#upload-form'); addButton.on('click', function() { var fileInput = $('<input type="file" name="file">'); var removeButton = $('<button>删除</button>'); var listItem = $('<div></div>').append(fileInput).append(removeButton); fileList.append(listItem); removeButton.on('click', function() { listItem.remove(); }); }); uploadForm.on('submit', function(event) { event.preventDefault(); var formData = new FormData(this); $.ajax({ url: '/upload', type: 'POST', data: formData, processData: false, contentType: false, success: function(data) { console.log('上传成功'); } }); }); }); ``` 具体实现步骤如下: 1. 创建一个表单,包含文件列表容器、添加文件按钮和提交按钮。 2. 给添加文件按钮绑定一个点击事件,动态创建一个 input type=file 文件上传域和删除按钮,将它们添加到文件列表容器中。 3. 给删除按钮绑定一个点击事件,当点击时将该文件上传域从文件列表容器中删除。 4. 给表单绑定一个提交事件,阻止默认提交行为,创建一个 FormData 对象,将表单中所有数据添加到其中,然后通过 ajax 发送到服务器。 5. 在 ajax 的 success 回调函数中处理上传成功后的逻辑。 注意,要设置 processData 和 contentType 为 false,这样 jQuery 就会将 FormData 对象中的数据直接发送到服务器,而不是将其转换为字符串发送。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值