flash上传组件swfupload的坑点及解决方法

前两天的文章说了项目中因为使用swfupload组件过程中,遇到一特殊需求无法满足,自己写了一个用iframe + form方案实现的异步处理方案。

今天就来总结归纳一下swfupload组件使用过程中会常遇到的问题。我就直接贴代码,问题和解决方案都在注释里标明了。


 
    /*在每个上传组件生成时,传递button_placeholder_id 和方便回调处理的dom */
    $('.uploadbtn').each(function(){                                                                    
        doupload($(this).attr('id'),$(this).closest('a'));
    })
    function doupload(btnid,dom){
        return new SWFUpload ({
            /*
             *如果你需要使用组件上传时同时提交自己的数据要用到post_params参数
             *但请注意,一定要将传参进行 <span style="font-family: Arial, Helvetica, sans-serif;">encodeURIComponent 编码</span>
             *post_params:{
                argument0: encodeURIComponent(argument0)
             *}
             *一直认为不指明button_image_url就报错的原因是必须指明一个路径,不然就会js报错。细细调试发现其实指明 preserve_relative_urls : true 和button_window_mode : SWFUpload.WINDOW_MODE.TRANSPARENT 就达到了不指明上传图片也可以解决不显示flash播放图标的问题,明显这是组件的bug
             *另外要注意如果upload_url设置的为相对路径,flash_url设置为绝对地址,
             *那么上传的upload_url的host就指向了flash_url的主域了
             *所以最好两者都指定为绝对路径
            */
            flash_url : "http://s***038d15/swfupload2.5.fix.swf",
            upload_url: 'http://dia***oad?from=cert',
            file_types : "*.jpg;*.png;*.gif;*.tif;",
            file_size_limit : "200 kB",
            preserve_relative_urls : true,
            button_placeholder_id : btnid,
            button_width : 120,
            button_height : 25,
            button_window_mode : SWFUpload.WINDOW_MODE.TRANSPARENT,
            file_dialog_complete_handler : function(){
                this.startUpload();
            },
            upload_success_handler : function(fileObject, serverData, receivedResponse){
                 if(serverData){
                    var fileval = serverData.split(',');
                    //console.log(dom.next().html(fileObject.name),fileObject,serverData)
                    dom.nextAll('.filename').html(fileObject.name).nextAll('.fileval').val(fileval[1]).attr('pid','');
                 }
            }
        })
    };


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值