JQuery Ajaxfileupload.js、 input异步上传图片 和多图片上传

今天来总结一下 ajaxfileupload.js 这是个非常好的异步上传图片的插件,来解决form表单上传时要刷新页面的问题。

一、操作前工作

1.首先引入:jquery 这不用多说。

2.引入Ajaxfileupload.js(单文件上传),链接地
址:http://download.csdn.net/detail/webxiaoma/9851195

3.引入Ajaxfileupload.js(多文件上传,下面会讲到),链接地
址:http://download.csdn.net/detail/webxiaoma/9851239

二、input 文件上传的一些知识点

1.input上传文件一般只能选择单个文件,但是加入multiple="multiple" 属性就ok了。例如:
<input type="file" id="file" multiple="multiple">

2.input在上传时会有一个上传的files对象,里面存储了一些上传文件的信息 获取files对象信息:

<input type="file" id="file"  multiple="multiple">
<script>
    document.getElementById("file").change=function(){
        console.log(this.files)
    }
</script>

files 对象的一些信息如下:
有一个filesList对象, this.files[0] 你会看到一些file的基本信息:(信息我不在解释,直接上图很清楚)

这里写图片描述

三、Ajaxfileupload.js 的一些属性

url 上传处理程序地址。  
fileElementId 需要上传的文件域的ID,即的ID。
secureuri 是否启用安全提交,默认为false。
dataType   服务器返回的数据 类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。
success   提交成功后自动执行的处理函数,参数data就是服务器返回的数据。
error    提交失败自动执行的处理函数。
data    自定义参数,当有数据是与上传的图片相关的时候,这个东西就要用到了。
type 当要提交自定义参数时,这个参数要设置成post

书写方式我们直接上代码:

<input type="file" id="file"  multiple="multiple">
<scrip  
        $.ajaxFileUpload({
            "url": "*/*.php",       //上传处理程序地址。  
            "fileElementId":"file", //需要上传的文件域的ID,即<input type="file">的ID。
            "secureuri":false, // 是否启用安全提交,默认为false。 
            "dataType":"json",   //服务器返回的数据 类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。
            "success":function(data, status){},    //提交成功后自动执行的处理函数,参数data就是服务器返回的数据。
            "error":function(data, status, e){},    // 提交失败自动执行的处理函数。
            "data":{"json":"aa"},      // 自定义参数。这个东西比较有用,当有数据是与上传的图片相关的时候,这个东西就要用到了。
            "type":"post"      //当要提交自定义参数时,这个参数要设置成post
        })
    </script>

四、Ajaxfileupload.js 的多图片上传

1.你可以直接下载我已经更改好的多文件上传 Ajaxfileupload.js 文件。
链接地址:http://download.csdn.net/detail/webxiaoma/9851239

2.或是自己直接手动修改单文件上传的 Ajaxfileupload.js

//修改前代码------- 
    var oldElement = jQuery('#' + fileElementId); 
    var newElement = jQuery(oldElement).clone(); 
    jQuery(oldElement).attr('id', fileId); 
    jQuery(oldElement).before(newElement); 
    jQuery(oldElement).appendTo(form); 
//修改前代码------- 

//修改后代码------- 
    for(var i in fileElementId){ 
        var oldElement = jQuery('#' + fileElementId[i]); 
        var newElement = jQuery(oldElement).clone(); 
        jQuery(oldElement).attr('id', fileId); 
        jQuery(oldElement).before(newElement); 
        jQuery(oldElement).appendTo(form); 
    } 
//修改后代码------- 

修改文件后,js提交文件时有小动的修改:

$.ajaxFileUpload({
    "url": "*/*.php",       //上传处理程序地址。  
    //fileElementId:'file1',//原使用方法 
    "fileElementId":["file1","file2"], //需要上传的文件域的ID,即<input type="file">的ID。每次上传图片都要上传ID
    "secureuri":false, // 是否启用安全提交,默认为false。 
    "dataType":"json",   //服务器返回的数据 类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。
    "success":function(data, status){},    //提交成功后自动执行的处理函数,参数data就是服务器返回的数据。
    "error":function(data, status, e){},    // 提交失败自动执行的处理函数。
    "data":{"json":"aa"},      // 自定义参数。这个东西比较有用,当有数据是与上传的图片相关的时候,这个东西就要用到了。
    "type":"post"      //当要提交自定义参数时,这个参数要设置成post
})

这里做一下说明,多文件上传时,属相fileElementId 要上传一个数组,数组里包含要上传文件的input ID;
我们可以在input每次 chenge 时,将它的ID 存储在 一个数组中,然后在将数组传递给后台。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值