jQuery多图上传Uploadify插件使用及传参详解

摘要:
因为工作需要,这两天接触到了Uploadify插件,由于是第一次用,花了我近一天的时间。一定要注意改这个路径'uploader':'UploadHandler.ashx','multi':true,//是否允许多选'auto':false,//是否允许自动上传'fileTypeExts':'*.jpg;*.gif;*.png;*.pdf','fileTypeDesc':'ImageFiles','queueID':'custom-queue','queueSizeLimit':100,//允许同时上传文件数量'uploadLimit':1000,//允许上传文件总数,指打开一次浏览器'fileSizeLimit':'1MB',//限制单个文件大小,限制IIS大小请到Web.Config修改'buttonText':'选择图片','formData':{"name":'',"remark":'','flag':''},//往后台传的参数传参'removeCompleted':true,//上传完成后是否自动消失'onUploadStart':function{$.uploadify;//给参数赋值},onError:function{alert;},'onQueueComplete':function{//所有文件上传完成时触发此事件icount=0;alert('上传完毕!

因为工作需要,这两天接触到了Uploadify插件,由于是第一次用,花了我近一天的时间。下面我把我在用这个插件过程详细的分享出来,也让自己巩固一下,也希望能帮助到你。

所需文件:

jquery-1.8.2.min.js (可以低版本
uploadify.css
swfobject.js

uploadify.swf
jquery.uploadify.js

uploadify-cancel.png(一张取消图片)

先看下效果:

1.界面

jQuery多图上传Uploadify插件使用及传参详解第1张

图1-1

2.选择多张图片后:

说明:叉叉图标的路径要改(CSS文件),不然不会显示叉叉图标。点击这个图标,标示这个图片取消上传)

jQuery多图上传Uploadify插件使用及传参详解第2张

图1-2

3.上传一张图片后:

(执行的是'onUploadSuccess')方法

jQuery多图上传Uploadify插件使用及传参详解第3张

上传完毕后:

(执行的是onQueueComplete方法)

jQuery多图上传Uploadify插件使用及传参详解第4张

---------------------------------------分界线-------------------------------------

js代码:

<head runat="server">
    <title runat="server" id="title">上传图片</title>

    <script src="http://t.zoukankan.com/js/addpic/jquery-1.8.2.min.js" type="text/javascript"></script>
    <link href="http://t.zoukankan.com/js/addpic/uploadify.css" type="text/css" rel="Stylesheet" />
    <script type="text/javascript" src="http://t.zoukankan.com/js/addpic/swfobject.js"></script>
    <script type="text/javascript" src="http://t.zoukankan.com/js/addpic/jquery.uploadify.js"></script>

<script type="text/javascript">
    var icount = 0;
 
    $(function() {
        var imgnum = 0;
        $('#custom_file_upload').uploadify({
            'buttonClass': 'submit',
            'swf': '../js/addpic/uploadify.swf',//!!!一定要注意改这个路径
            'uploader': 'UploadHandler.ashx',
            'multi': true,      //是否允许多选
            'auto': false,       //是否允许自动上传
            'fileTypeExts': '*.jpg;*.gif;*.png;*.pdf',
            'fileTypeDesc': 'Image Files (.JPG, .GIF, .PNG, .PDF)',
            'queueID': 'custom-queue',
            'queueSizeLimit': 100,      //允许同时上传文件数量
            'uploadLimit': 1000,        //允许上传文件总数,指打开一次浏览器
            'fileSizeLimit': '1MB',   //限制单个文件大小,限制IIS大小请到Web.Config修改
            'buttonText': '选择图片',

            'formData': { "name": '', "remark": '', 'flag': '' },//往后台传的参数  传参
            'removeCompleted': true,    //上传完成后是否自动消失

            'onUploadStart': function(file) {

                $("#custom_file_upload").uploadify("settings", "formData", { 'name': $('#name').val(), 'remark': $('#remark').val(), 'flag': $('#flag').val() });//给参数赋值
},
            
              onError: function(event, queueID, fileObj)   
                {    
                 alert("图片:" + fileObj.name + " 上传失败");    
                },
            'onQueueComplete': function(file) {         //所有文件上传完成时触发此事件
                icount = 0;
                alert('上传完毕!');
                window.close();
            },
            'onUploadSuccess': function(file, data, response) {//上传每个完成事件
alert("图片:" + file.name+ data ); //data是返回值
}

        });


    });
//这个方法是点击上传按钮检测一下用户输入的图片名称是否为空,为空的话,直接返回false
    functionstar() {
        var name = $('#name').val();
        var name = $('#name').val();
        if (name.replace(/s/g, '') == '') {
            alert("名称不能为空!");
            return false;
        } 
        $('#custom_file_upload').uploadify('upload', '*');
    }
</script>
</head>

js中遇到的问题:

1 在js如果要往一般处理程序中传递参数的话怎么做?

如js代码中的 这两句代码,就是往一般处理程序传值的代码,他们是一一对应的。

'formData': { "name": '', "remark": '', 'flag': '' },//往后台传的参数  传参
 $("#custom_file_upload").uploadify("settings", "formData", { 'name': $('#name').val(), 'remark': $('#remark').val(), 'flag': $('#flag').val() });//给参数赋值
    

其它的一些参数可以自己网上查查,可以尝试赋不同的值的效果。

html代码:

<form runat="server"id="form1"method="post"class="uploads" >

    <div>
        <ul class="sitemappath">
            <li style="height: 21px"><strong>上传公司图片(*为必填项)</strong></li>
        </ul>
    </div>
   
        <table style=" 567px; height: 103px;"cellpadding="1"cellspacing="1"class="table_default table_green">
            <tr>
                <th class="style9"  >*图片名称:
                </th>
                <td class="style8" >
                    <input id="name"type="text"vmode="not null"runat="server"maxlength="25"style=" 215px"/>
                </td>
             
                 <th class="style5" >是否有效:
                </th>
                <td class="style10" >
                    <asp:CheckBox ID="flag"runat="server"Checked="true" />
                </td>
            </tr>
            <tr>
                <th class="style7" >图片描述:
                </th>
                <td colspan="1"class="style6">
                     <textarea id="remark"name="remark"style=" 427px; height: 86px"runat="server"></textarea>
                </td>
                
                 
            </tr>
            <tr>
                   <th class="style3"  >*图片位置:
                </th>
                <td colspan="1"class="style4"  >  
                  <dd>
                        <div class="select_photo">
                               <input id="custom_file_upload"type="file"name="Filedata"/><!--选择图片的按钮 -->
                        <div id="custom-queue"><!--选择完图片展示的下拉框,如图1-2 -->
                        </div>
                    </dd>
                </td>
              <td colspan="2"class="style4"  >
                     <font color="red">大小:小于1M 
                     <br />格式:gif、bmp、png</font> </td>
            </tr>
            <tr>
                <td colspan="4"align="right">
                  <div class="upload_submit">
                <input type="hidden"name="imgPath"value=""id="imgPaths" />
                <input name=""type="button"id="sub"value="上传"class="submit"onclick="javascript:star();" /><!--调用上传方法 -->
            </div>

                </td>
            </tr>
        </table>
    </form>

后台代码:

Photo o = new Photo();
        HttpPostedFile file = context.Request.Files["Filedata"];//准备参数
        o.upload_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
       
        o.name = context.Request["name"];  //获取前台传的参数      
        o.remark = context.Request["remark"];
        o.flag = context.Request["flag"] == "on" ? true : false;

        if (file!=null)//判断文件是否为空
        {
            string strOldName = file.FileName.Trim();//原始文件名
            string strNewName = DateTime.Now.ToString("yyyyMMddHHmmss")+CommonBLL.GetStreamMD5(file.InputStream)+ "." + strOldName.Substring(strOldName.LastIndexOf(".") + 1); //产生图片文件名
            string strFileSize = file.ContentLength.ToString(); //获取图片大小
            string filepath = "uploadpic";
          
                if (CommonBLL.SaveFile(file, strNewName, filepath))//保存图片的方法
                {
                    o.file_name = strNewName;
                    if (AdminHelperBLL.AddPhoto(o) > 0)//保存到数据库
                    {
                        context.Response.Write("上传成功");                      
                    }
                    else
                    {

                        context.Response.Write("上传失败,请重试!");
                       
                    }
这个插件的使用方法算是很详细了,这个插件网上可以下载,后台代码设计的有图片处理,缩略图等,所以没贴完(缩略图代码将另写一遍博文),忘谅解。
现在觉得jQuery用法很多都很相似,以前用过SWF_Upload和这个方法也很类似。
我是一个小菜鸟,如有不足,还希望各位大神指出。谢谢你们!

免责声明:文章转载自《jQuery多图上传Uploadify插件使用及传参详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Socket 编程中,TCP 流的结束标志与粘包问题Jenkins部署git+python项目实现持续集成下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

jQuery获取Select选择的Text和Value(详细汇总)

语法解释:  1. $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 2. var checkText=$("#select_id").find("option:selected").text(); //获取Select选择的Text 3. var checkVa...

jQuery radio的取值与赋值

HTML <div class="weui-cell"> <div class="weui-cell__hd"><label class="weui-label">性别</label></div> <div class="weui-cel...

jquery实战——弹出框拖拽效果

今天主要记录一下弹出框拖拽效果: 一、移动弹出窗口的步骤是:按下鼠标左键——移动鼠标——松开鼠标左键停止移动 二、主要思想: 按下鼠标左键:$('div').mousedown(function(e){}) 移动鼠标,获取鼠标当前坐标值:$(document).mousemove(function(e){}) 松开鼠标左键停止移动:$('div').mou...

分享10个jQuery的全景图片展示插件

整合jQuery的全景图片展示插件,能帮助你的网站访客更好的浏览你的网站图片。帮助你构建虚拟旅程,全景展示和滚动,无限的图片幻灯,希望大家喜欢! 相关的插件:分享8个图片360度旋转展示的jQuery插件 1. 360° panoramic view plugin for jQuery 一个全景图由一系列图片经过软件合成的一个广视角效果。它给予访客一个身临...

【转】nodejs获取post请求发送的formData数据

前端post请求发送formData的类型数据时,需要服务端引入中间件body-parser,主要原因是post请求发送的数据,是在http的body里面,所以需要进行解析,否则获取不到数据(数据为空) 注意:对于使用Requst Payload(以“流“的方式传递数据时,不要要这个中间件) 即便是前端浏览器能够看到数据(如下图所示)已发送并且请求成功,s...

利用jquery 实现hover的div显隐

通常要用到jq的时候这两个抓取对象没有父子级关系,但直接用jquery中的hover事件时,当鼠标移出绑定元素就会执行消失动作,因此: var timer=0; $('#sad').hover(function(){ $('#reply').show(); },function(){ timer=setTimeout(functio...