ajax+formData发送文件

var testFormData = new FormData()

背景:

是这样的,最近在实习公司正在进行一个webApp的项目,需要用到图片的上传,在实现这个功能的时候遇到了令人头痛的事-----后台接口想要通过数据流一次过接收图片和其他数据,有想过使用base64的方式传图片,可是这样的话,后台接收到的数据会很大,而且后台还期望以form submit的方式去传送和接受数据,而前端却没有添加form标签,也不打算添加form,直接使用ajax方式传送数据到后台。

另外,我们在填充数据的时候也有这样的烦恼,就是数据存放在store.js里(项目用的是vuejs+vuex),要发送数据的话,要人工序列化数据成想要的格式(这简直反人类好吗!!)

解决办法:

通过一番与后台的交涉和网上查阅了一系列的资料,终于发现了一片新大陆----formData接口!

其实formData不算什么新的技术,只是我之前没有去了解过这方面的内容,这让我更加重视各方面知识的积累,以及认识到自身对前端的知识面还不够广,要多加了解学习!!!要多加了解学习!!!要多加了解学习!!!

FormData:

XMLHttpRequest Level 2添加了一个新的接口 FormData .利用 FormData对象 ,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,我们还可以使用XMLHttpRequest的 send() 方法来异步的提交这个"表单".比起普通的ajax,使用 FormData 的最大优点就是我们可以异步上传一个二进制文件.

以上是网上关于formData接口的一些描述

使用方法:

使用非常简单,只需要创建formData对象,然后通过append方法往里面塞数据就可以了:


var testFormData = new formData();
testFormData.append("data1",data);

这里的data可以是字符串,也可以是文件,如果是文件的话,连使用form submit提交时需要标注的multipart/form-data都不用加

然后通过ajax发送这个formData对象就可以把文件传送过去了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值