zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    网页转图片,html生成图片,网页生成图片(基于linnux+phantomjs)和wkhtmltoimage
    51Nod 1031 骨牌覆盖 | Fibonacci
    51Nod 1024 矩阵中不重复的元素 | 技巧 数学
    51Nod 1014 X^2 Mod P
    51Nod 1010 只包含因子2 3 5的数 | 预处理+二分
    51Nod 1007 正整数分组 | DP (01背包)
    51Nod 1381 硬币游戏 | 概率(数学期望)
    51Nod 1347 旋转字符串 | 规律
    51Nod 1344 走格子 | 贪心
    51Nod 1305 Pairwise Sum and Divide | 思维 数学
  • 原文地址:https://www.cnblogs.com/datiangou/p/10408016.html
Copyright © 2011-2022 走看看