多文件上传uploadify.v2.1.0使用总结

具体使用和参数网上几乎都有, 比如 http://www.jb51.net/article/23225.htm 

这里只讲一些问题的解决

1.如何解决中文字乱码

使用属性buttonImg将flash文件设置为图片,再使用div当背景

 'buttonImg': '../JS_Upload/mutiImport.png',
  <td colspan="5" align="left"><div style="background:url(../JS_Upload/mutiImport.png); width:110px;height:23px;"><input type="file" name="uploadify" id="uploadify" accept="image/jpeg"  /></div></td>

2.界面显示的时候flash加载很慢

解决:

这个使用一个div将div的背景设置为buttonImg一样的图片背景就行了

<div style="background:url(../JS_Upload/mutiImport.png); width:110px;height:23px;">
<input type="file" name="uploadify" id="uploadify" accept="image/jpeg"  /></div>

效果:


3.后台接收中文参数的时候会乱码

解决:

在ashx处理前将编码转换为utf-8

context.Request.ContentEncoding = Encoding.GetEncoding("UTF-8");
context.Response.ContentEncoding = Encoding.GetEncoding("UTF-8");


4.一次性上传多个文件 但是如果部分成功部分失败 想导出成excel应该怎么做?

提供一种思路:

由于此控件每上一次就会自动调用一次后台处理方法,需要在后台先把错误信息拼接到前台隐藏控件里

然后在onAllComplete方法里把错误信息拼到form表单里 最后提交form表单到达处理页面,由处理页面将错误信息导出excel

需要注意的是,提交表单的时候最好使用iframe,不然界面条件会被刷新掉

 $("#uploadify").uploadify({
                'uploader': '../JS_Upload/uploadify.swf',
                'script': 'UploadHandler.ashx?method=UPLOAD_HWC_SFDZ@' + $(HEAD_STR + "HF_E_COMMERCE_CODE").val() + "@" + $(HEAD_STR + "HF_LOGIN_USERNAME").val(),
                'cancelImg': '../JS_Upload/cancel.png',
                'folder': 'UploadFileTemp',
                'queueID': 'fileQueue',
                'auto': true,
                'multi': true,
                'wmode':'transparent',
                'height':25,
                 'width': 130,
                'buttonImg': '../JS_Upload/mutiImport.png',
                //'buttonText': '浏览', //按钮上的文字     
                'queueSizeLimit': <%=SFDZ_MAX_UPLOADED_COUNT%>, //上传队列的最大长度
                // 'sizeLimit': 1024 * 200, //最大200KB
                'fileExt': '*.jpg',
                'fileDesc': '请选择jpg格式',
                'simUploadLimit': '1', //一次同步上传的文件数目  
                'onAllComplete': function(event, uploadObj) //多个上传
                {
                    //alert("上传完成!");
                    document.getElementById("uploadForm").submit();
                    clearErrorMsg();
                    hiddenLoadingDiv();
                },
                'onQueueFull': function(event, queueSizeLimit) {
                    //如果超过上传队列的最大长度 取消上传
                    $('#uploadify').uploadifyClearQueue();
                },
                'onProgress': function(event, ID, fileObj, data) {
                    showLoadingDiv(); //锁屏
                },
                'onComplete': function(event, ID, fileObj, response, data) //单个上传
                {
                    var obj = eval("(" + response + ")");
                    //alert(obj.error_code);

                    //错误代码 100文件大小不能为0  
                    //         102 文件不能超过xx 
                    //         103文件名不正确  
                    //         110 文件上传失败 
                    //         120文件上传成功
                    //         105 该订单不属于当前电商
                    var hid_error_code_100 = $("#hid_error_code_100").val();
                    var hid_error_code_102 = $("#hid_error_code_102").val();
                    var hid_error_code_103 = $("#hid_error_code_103").val();
                    var hid_error_code_105 = $("#hid_error_code_105").val();
                    var hid_error_code_110 = $("#hid_error_code_110").val();

                    switch (obj.error_code) {
                        case "100":
                            //alert(obj.error_msg);
                            //alert(hid_error_code_100);
                            if (!checkIsNull(obj.error_msg)) {
                                $("#hid_error_code_100").val(hid_error_code_100 + obj.error_msg + "、");
                            }
                            break;
                        case "102":
                            if (!checkIsNull(obj.error_msg)) {
                                $("#hid_error_code_102").val(hid_error_code_102 + obj.error_msg + "、");
                            }
                            break;
                        case "103":
                            if (!checkIsNull(obj.error_msg)) {
                                $("#hid_error_code_103").val(hid_error_code_103 + obj.error_msg + "、");
                            }
                            break;
                        case "105":
                            if (!checkIsNull(obj.error_msg)) {
                                $("#hid_error_code_105").val(hid_error_code_105 + obj.error_msg + "、");
                            }
                            break;
                        case "110":
                            if (!checkIsNull(obj.error_msg)) {
                                $("#hid_error_code_110").val(hid_error_code_110 + obj.error_msg + "、");
                            }
                            break;
                        default:
                            break;
                    }
                }
            });
        });

    <form action="Frm_Action_SFDZ.aspx?DoType=ExportHWC_SFDZ_ERROR" name="uploadForm" id="uploadForm" method="post" target="Action_frame">
            <input id="hid_error_code_100" name="hid_error_code_100" type="hidden" value=""  />
            <input id="hid_error_code_102" name="hid_error_code_102" type="hidden" value=""  />
            <input id="hid_error_code_103" name="hid_error_code_103" type="hidden" value=""  />
            <input id="hid_error_code_110" name="hid_error_code_110" type="hidden" value=""  />
            <input id="hid_error_code_105" name="hid_error_code_105" type="hidden" value=""  />
  </form>

 <iframe id="Action_frame" name="Action_frame" style="display:none;"></iframe> 


5.如果添加一个带滚动条的效果

提供一种思路:

在开始执行上传的时候打开一个层遮住,在onAllComplete执行完毕时关闭层

 

 'onProgress': function(event, ID, fileObj, data) {
                    showLoadingDiv(); //锁屏
                },

 'onAllComplete': function(event, uploadObj) //多个上传
                {
                    //alert("上传完成!");
                    document.getElementById("uploadForm").submit();
                    clearErrorMsg();
                    hiddenLoadingDiv();
                },


6.如何在超过一次性上传个数限制的时候取消上传

提供一种思路:

在onQueueFull方法里调用取消方法即可

  'onQueueFull': function(event, queueSizeLimit) {
                    //如果超过上传队列的最大长度 取消上传
                    $('#uploadify').uploadifyClearQueue();
                },



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值