uploadifive不用flash上传图片插件,基于h5和jQuery上传图片插件

11 篇文章 0 订阅

之前公司用的一直是uploadify,基于flash的,随着flash的淘汰,好多浏览器已经屏蔽flash了,谷歌的,就连最近的win10也弃掉了flash,所以为了更好的用户体验改用uploadifive,移动端也可以使用,好了,话不多说下面就是整理的代码demo。

<!--上传图片插件-->
<link rel="stylesheet" type="text/css" href="uploadifive.css">
<script type="text/javascript" src="__STATIC__/uploadifive/jquery.uploadifive.min.js"></script>
<div class="controls"> 

<!--进度框-->

<div id="queue"></div> 

<!--上传按钮-->

<input id="upload_picture_{$field.name}" name="{$field.name}" type="file" multiple="true"> 

<!--真正的input值-->

<input type="hidden" name="{$field.name}" id="cover_id_{$field.name}" value="{$data[$field['name']]}"/> 

<!--成功后图片显示框-->

<div class="upload-img-box">    

 <notempty name="data[$field['name']]">

<div class="upload-pre-item">

<img src="__ROOT__{$data[$field['name']]|get_cover='path'}"/></div> </notempty> </div>

</div>

<script type="text/javascript"> 

 <?php $timestamp = time();?> $(function() { 

  $('#upload_picture_{$field.name}').uploadifive({

'auto' : true,//是否是自动上传,默认是true

'uploadScript' : "{:U('uploadPicture'))}",//上传地址

'fileObjName' : 'download',

'buttonText' : '上传照片',

'queueID' : 'queue',//进度条id

'fileType' : 'image/*',//上传文件类型

'multi' : false,//允许多个文件上传

'fileSizeLimit' : 5242880, 'uploadLimit' : 1,//一次可以上传的最大文件数

'queueSizeLimit' : 1,//允许队列中存在的最大文件数

上传成功后调用
          'onUploadComplete' : function(file, data) {
               var obj = JSON.parse(data);
                 if (obj.img == "500") {
                       alert("系统异常!");
                    } else {
                       $("#cover_id_{$field.name}").val(obj.id);
                       src = obj.url || '__ROOT__' + obj.path
                       $("#cover_id_{$field.name}").parent().find('.upload-img-box').html(
                          '<div class="upload-pre-item"><img src="' + src + '"/></div>'
                           );
                          document.getElementById("submit").disabled = false;
                       }
                    },
//取消上传调用
           onCancel : function(file) {
                $("#cover_id_{$field.name}").val("");
                                        /* 注意:取消后应重新设置uploadLimit */
                $data  = $(this).data('uploadifive'),
                settings = $data.settings;
                settings.uploadLimit++;
                alert(file.name + " 已取消上传~!");
                },
//h5 API不支持的浏览器触发
          onFallback : function() {
                 alert("该浏览器无法使用!");
                },
//开始上传队列时触发
          onUpload : function(file) {
              document.getElementById("submit").disabled = true;//当开始上传文件,要防止上传未完成而表单被提交
             },

     });
  });
</script>


这是参数的属性和作用:

属性作用
auto是否自动上传,默认true
uploadScript上传路径
fileObjNamefile文件对象名称
buttonText上传按钮显示文本
queueID进度条的显示位置
fileType上传文件类型
multi是否允许多个文件上传,默认为true
fileSizeLimit允许文件上传的最大尺寸
uploadLimit一次可以上传的最大文件数
queueSizeLimit允许队列中存在的最大文件数
removeCompleted隐藏完成上传的文件,默认为false
方法作用
onUploadComplete文件上传成功后执行
onCancel文件被删除时触发
onUpload开始上传队列时触发
onFallbackHTML5 API不支持的浏览器触发
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值