手册

ajax文件上传和文件下载

2020-03-06  本文已影响0人  goodluckall

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);
 })
  1. 通过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);
上一篇 下一篇

猜你喜欢

热点阅读