美文网首页手册
ajax文件上传和文件下载

ajax文件上传和文件下载

作者: goodluckall | 来源:发表于2020-03-06 13:41 被阅读0次

    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);
    

    相关文章

      网友评论

        本文标题:ajax文件上传和文件下载

        本文链接:https://www.haomeiwen.com/subject/laqbrhtx.html