• Ajax简单实现文件异步上传的多种方法


    1. 认识FormData对象

    FormData是Html5新加进来的一个类,可以模拟表单数据

    构造函数 解释
    FormData (optional HTMLFormElement form) (可选) 一个HTML表单元素,可以包含任何形式的表单控件,包括文件输入框.

    方法

    void append(DOMString name, DOMString value)

    • name 表单元素名称
    • value 表单元素要传递的值

    <form name="myForm"  enctype="multipart/form-data">
        <input type="text" name="userName">
        <input type="file" name="img">
        <input type="button" id="btn" value="submit">
    </form>
    
    
    

    2. 使用javascript简单实现

    function upload() {
        var userName = document.myForm.userName.value;
        var img = document.myForm.img.files[0];
        var fm = new FormData();
        fm.append('userName', userName);
        fm.append('img', img);
    
        var request = new XMLHttpRequest();
        request.open('POST', 'submitform.php');
        request.send(fm);
    }
    
    

    3. 使用Ajax实现

    $('#btn').click(function () {
        var userName = document.myForm.userName.value;
        var img = document.myForm.img.files[0];
        
        var fm = new FormData();
        fm.append('userName', userName);
        fm.append('img', img);
        $.ajax(
            {
                url: 'submitform.php',
                type: 'POST',
                data: fm,
                contentType: false, //禁止设置请求类型
                processData: false, //禁止jquery对DAta数据的处理,默认会处理
                //禁止的原因是,FormData已经帮我们做了处理
                success: function (result) {
                    //测试是否成功
                    //但需要你后端有返回值
                    alert(result);
                }
            }
        );
    });
    
    

    4. ajaxfileupload.js插件实现Ajax文件上传

    function upload(){
    $.ajaxFileUpload({
            url: 'a.php', //用于文件上传的服务器端请求地址
            secureuri: false, //一般设置为false
            fileElementId: 'file', //文件上传空间的id属性  
            dataType: 'HTML', //返回值类型 一般设置为json
            success: function (data, status)  //服务器成功响应处理函数
            {                
                $("#img1").attr("src", data);
                addI(data);
            },
            error: function (data, status, e)//服务器响应失败处理函数
            {
                alert(e);
            }
        }   
    );
    } 
    
    

    • 对于PHP就可以使用Files全局数组拿到文件属性,POST全局数组拿到userName的值

    文章一: 个人搭建翻墙服务器

    原文地址:https://www.jianshu.com/p/d90d2e6bb0d5
  • 相关阅读:
    maven创建父子工程
    webservice之jersey简单实用
    EL表达式处理字符串
    oracle不等于1怎么查?
    day_07 搭建Tomcat服务器使用Servlet服务,后端接受前端请求过来的表单数据并使用
    Day_06 流程控制-循环结构-嵌套循环结构的原理解析
    Day05_流程控制02 循环结构
    day_5 流程控制 选择结构的两种常用语句的使用语法
    day_04 运算符详解
    day_03 变量的数据类型详解
  • 原文地址:https://www.cnblogs.com/datiangou/p/10408016.html
Copyright © 2020-2023  润新知