使用uploadify插件可方便实现图片上传功能。兼容ie6、ie7。

上传成功之后使用插件的回调函数读取json数据,根据url实现图片预览。

效果图:

点击浏览文件上传图片,图片依次在右侧显示预览效果。

实现:

json数据格式如下:

页面代码如下:

注:需要引用jQuery.js、uploadify.js、uploadify文件。。uploadify文件下载地址

<html>
<head>
<script type="text/javascript" src="static/js/jquery.js">"></script>
<script type="text/javascript" src="static/js/jquery.select.js">"></script>
</head>
<body>

<div class="file-box">
    <div id="divPreview">
     <span style="float:left">(最多可上传五张图片)</span>
    </div>
    <input type="file" name="file" class="file" id="fileField" />
    <input type="hidden" name="hash" id="hash" value="xoxo"/>

</div>
<script>
$(function() {
  $("#fileField").uploadify({
    'height'    : 30,
    'swf'    : '<?php echoYii::app()->request->baseUrl ?>/static/uploadify/uploadify.swf?var='+(newDate()).getTime(),
    'uploader'   :'index.php?r=upload/uploadimage',
    'width'     : 120,
    'onUploadSuccess' : function(file, data, response) {

      var info = eval("("+data+")");
      if(info.err==1){alert(info.msg);} //如果图片过大或者格式错误弹出错误信息
      else{
      $("#divPreview").append($("<img src='" + info.img + "'/>"));
      $("#divPreview").append($("<input type='hidden' name='imgId[]' value='" + info.imgId + "'/>"));
      }
    },
    'buttonText'  : '浏览文件',
    'uploadLimit'  : 5,  //上传最多图片张数
    'removeTimeout' : 1,
    'preventCaching': true, //不允许缓存
    'fileSizeLimit' : 4100, //文件最大

    'formData'   : { '<?php echosession_name();?>' : '<?php echosession_id();?>','hash':$("#hash").val() } //hash

  });

  $("#SWFUpload_0").css({ //设置按钮样式,根据插件文档进行修改

   'position' :'absolute',
   'top': 20,
   'left': 35,
   'z-index' : 1

    });

});

</script>
</body>
</html>

曾遇到问题:

ie、360浏览器中对json数据检查比较严格,不允许最后一个“,”存在。其它浏览器不会报错,需要注意。

阅读插件文档能力有待提高

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

02-01 03:05
查看更多