zoukankan      html  css  js  c++  java
  • Ajax简单实现文件异步上传的多种方法

    1. 认识FormData对象

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

    构造函数

    FormData (optional HTMLFormElement form) (可选)

     解释

    一个HTML表单元素,可以包含任何形式的表单控件,包括文件输入框.

    方法

    void append(DOMString name, DOMString value)

    • name 表单元素名称
    • value 表单元素要传递的值
    1 <form name="myForm"  enctype="multipart/form-data">
    2     <input type="text" name="userName">
    3     <input type="file" name="img">
    4     <input type="button" id="btn" value="submit">
    5 </form>

    2. 使用javascript简单实现

     1 function upload() {
     2     var userName = document.myForm.userName.value;
     3     var img = document.myForm.img.files[0];
     4     var fm = new FormData();
     5     fm.append('userName', userName);
     6     fm.append('img', img);
     7 
     8     var request = new XMLHttpRequest();
     9     request.open('POST', 'submitform.php');
    10     request.send(fm);
    11 }

    3. 使用Ajax实现

     1 $('#btn').click(function () {
     2     var userName = document.myForm.userName.value;
     3     var img = document.myForm.img.files[0];
     4 
     5     var fm = new FormData();
     6     fm.append('userName', userName);
     7     fm.append('img', img);
     8     $.ajax(
     9         {
    10             url: 'submitform.php',
    11             type: 'POST',
    12             data: fm,
    13             contentType: false, //禁止设置请求类型
    14             processData: false, //禁止jquery对DAta数据的处理,默认会处理
    15             //禁止的原因是,FormData已经帮我们做了处理
    16             success: function (result) {
    17                 //测试是否成功
    18                 //但需要你后端有返回值
    19                 alert(result);
    20             }
    21         }
    22     );
    23 });

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

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

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

    来自:http://www.jianshu.com/p/d90d2e6bb0d5

  • 相关阅读:
    delphi try except语句 和 try finally语句用法以及区别
    正向代理与反向代理(转)
    kbmMW功能
    problem 202,263、232、21、231
    leetcode day8
    leetcode day7
    VS2013 opencv2.4.8
    web 前端routine
    leetcode day6
    leetcode day5
  • 原文地址:https://www.cnblogs.com/jiechen/p/5614529.html
Copyright © 2011-2022 走看看