码迷,mamicode.com
首页 > Web开发 > 详细

js实现上传图片本地预览功能

时间:2015-10-27 17:10:54      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:

js:

/**
     * 上传图片本地预览方法
     * @param {Object} fileObj 上传文件file的id元素  fresh-fileToUpload
     * @param {Object} previewObj 上传图片的预览id元素  fresh-send-preview-img
     * @param {Object} localImg 预览图片的父层id元素  fresh-send-preview-imgvideo
     */
    fs.setImagePreview =function(fileObj, previewObj, localImg) {
          var docObj = document.getElementById(fileObj);
          var imgObjPreview = document.getElementById(previewObj);

          if (docObj.files && docObj.files[0]) {
              //火狐下,直接设img属性
              //火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式  
              imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]);
          } else {
              //IE下,使用滤镜
              docObj.select();
              var imgSrc = document.selection.createRange().text;
              var localImagId = document.getElementById(localImg);
              //必须设置初始大小
              // localImagId.style.width = "120px";
              // localImagId.style.height = "80px";
              //图片异常的捕捉,防止用户修改后缀来伪造图片
              try {
                  localImagId.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
                  localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
              } catch (e) {
                  alert("您上传的图片格式不正确,请重新选择!");
                  return false;
              }
              imgObjPreview.style.display = ‘none‘;
              document.selection.empty();
          }

          return true;
    }

使用方法:

fs.fileupload = function(dom) {
        var that =$(dom);
        if( that.length == 0 ){
          return false;
        }
        if (!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(dom.value)) {
            alert(‘图片格式无效!‘);
            return false;
        }
        //显示图片预览区域
        $(‘#fresh-send-preview‘).removeClass(‘hide‘);
        $(‘.fresh-send-preview-imgvideo‘).find(‘img‘).attr(‘src‘, ‘http://img04.xesimg.com/loading.gif‘);
        this.setImagePreview(‘fresh-fileToUpload‘, ‘fresh-send-preview-img‘, ‘fresh-send-preview-imgvideo‘);
    };

html:

<div class="fresh-send-preview hide" id="fresh-send-preview">
             <div class="fresh-send-preview-imgvideo" id="fresh-send-preview-imgvideo">
                 <img id="fresh-send-preview-img" src="img/fresh-send-img.png">
                 <i class="fresh-preview-close"></i>
             </div>
</div>

 <div class="fresh-send-upload">
   <input class="fresh-fileToUpload" id="fresh-fileToUpload" type="file" size="45"  name="dynImg" accept="image/*" />
 </div>

js实现上传图片本地预览功能

标签:

原文地址:http://www.cnblogs.com/dearxinli/p/4914453.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!