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

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>

时间: 2024-10-24 20:33:24

js实现上传图片本地预览功能的相关文章

上传图片带预览功能兼容IE和火狐等主流浏览器

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

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

Express为:4.13.1  multyparty: 4.1.2 代码主要实现本地图片上传到nodejs服务器的文件下,通过取图片路径进行图片预览 写在前面:计划实现图片上传预览功能,但是本地图片上传所获得路径为 C:\fakepath\"+文件名的形式,得不到文件真实路径,所以无法直接预览,于是采用将图片上传至服务器,传回服务器路径,实现预览.前端采用通过ajax方式上传文件,使用FormData进行ajax请求  ,nodejs端采用multiparty模块 相关查看文档: 通过Ajax

Ajax 实现上传图片即时预览功能

本文为原创,转载请注明:http://www.pm-road.com/index.php/2014/07/31/50 很多网站在上传头像或照片的时候,都会有一个预览功能,结合自身体验将该功能实现一下:要求:图片保存到数据库点击查看实现ajax上传图片即时预览另一种方法(简单方法) 之前,我在做项目的时候,有一个功能就是要求上传的图片要即时显示,很多网站都会有这样的案例,其中的代码逻辑大多为把图片传到服务器上之后,返回图片的 物理路径,不过,我们当时使用的框架为ExtJS 4.1,而且因为涉及一些

JS实现的图片预览功能

之前的博文有实现过图片上传预览,但那种方法是预览时就将图片上传,会产生很大的浪费空间.找到了之前有人写的用JS实现的图片预览,就说用js将上传的图片显示,上传代码在之前的博文中有写到. 以下是实现的代码: body: <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tbody> <tr> <td heig

js 上传图片本地预览缓存

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>文件上传</title> <script src="jQuery.js"></script> <style type="text/css"> #file{ display: block; width: 400px; heigh

jquery 上传图片即时预览功能

<script type="text/javascript">        jQuery.fn.extend({            uploadPreview: function (opts) {                var _self = this, _this = $(this);                opts = jQuery.extend({                    Img: "Image1",      

js实现视频本地预览,一级获取播放时长

<video style="display:none;" controls="controls" id="aa" oncanplaythrough="myFunction(this)"></video> <input type="file" onchange="changeFile(this)" > <script> function my

JS通过使用PDFJS实现基于文件流的预览功能

需求: 使用JS实现PDF文件预览功能 备选方案: 使用ViewerJS,官网  http://viewerjs.org/ 使用PDFJS,官网  https://mozilla.github.io/pdf.js/ 结论: 通过研究发现,Viewer JS预览pdf文件,其pdf文件只能url地址,不支持获取文件流到客户端,生成blob地址预览.而PDFJS能够支持 代码实践: <div class="modal inmodal fade" id="previewMod

网站中集成jquery.imgareaselect实现图片的本地预览和选择截取

imgAreaSelect 是由 Michal Wojciechowski开发的一款非常好用的jquery插件,实现了图片的截取功能.其文档和Demo也是很详尽的.大家可以到http://odyniec.net/projects/imgareaselect/了解更多的细节. 下面我们就开始使用imgAreaSelect 开始code吧. 第一还是要引用jquery,接着引用下载好的 jquery.imgareaselect.pack.js 文件和 imgareaselect-default.cs