1.文件上传
FormData对象用以将数据编译成键值对,以便用XMLHttpRequest来发送数据。其主要用于发送表单数据,但亦可用于发送带键数据(keyed data),而独立于表单使用。
ajax文件上传其参数类型是个对象,创建一个Formdata对象,通过append方法添加字段。
var formdat = new FormData();
formdat.append("file",$('#fileCheck')[0].files[0]);//文件参数
formdat.append("others",otherEle);//其他参数
$.ajax({
url: serverUrl
headers: {
"token": getCookie("token")
},
dataType:'json',
type:'POST',
async: false,
data: formdat,
processData : false, // 使数据不做处理
contentType : false, // 不要设置Content-Type请求头
success: function(data){
},
error:function(response){
}
});
2.文件下载
1.存在下载地址的直接用a标签
<a href="../files/xxx.txt" download="文件名.txt">下载</a>
2.直接存在接口的用window.open('接口地址')
$('#modleBtn').click(function(){
var filetypes = "数据模板";
window.open(serverUrl+'a/ware/down?token='+getCookie("token")+'&&templateName='+filetypes);
})
- 通过form表单文件下载(还有多个参数)
const postDownloadFile = (action, param) => {
const form = document.createElement('form');
form.action = action;
form.method = 'post';
form.target = 'blank';
Object.keys(param).forEach((item) => {
const input = document.createElement('input');
input.type = 'hidden';
input.name = item;
input.value = param[item];
form.appendChild(input);
});
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}
postDownloadFile(url, param);
网友评论