function getPath()
{
  //判断浏览器
  var Sys = {};
  var obj = document.getElementById("headImg");
  var viewer = document.getElementById("viewImg");
  var ua = navigator.userAgent.toLowerCase();
  var s;
  (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
  (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
  (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
  (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
  (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
  var path="";
  if(Sys.ie<="6.0"){
    //ie5.5,ie6.0
    viewer.src = obj.value;
  }else if(Sys.ie>="7.0"){
    //ie7,ie8
    obj.select();
    //加上这一句防止报告安全问题
    obj.blur();
    viewer.src = document.selection.createRange().text;
  }else if(Sys.firefox){
    if (obj.files) {
        var accept = ["image/png","image/jpeg","image/jpg","image/gif"];
        if (accept.indexOf(obj.files[0].type) > -1) {
            var reader = new FileReader();
            reader.readAsDataURL(obj.files[0]);
            //延迟一会等待文件读取完毕
            var t = setTimeout(function(){
            viewer.src = reader.result;
            clearTimeout(t);
            },100)
        }
    }
    else
    {
        viewer.src = obj.value;
    }
  }else if(Sys.chrome){
    viewer.src = obj.value;
  }
}

<form>
<input type="file" id="headImg" />
<input id="btnOk" type="button" value="ok" onclick="getPath()"/>
<img src="http://blog.163.com/zhchf_52@yeah/blog/" alt="view" id="viewImg" />
</form>

由于IE9不能实时的显示图片,所以采用滤镜的方法:
<style type="text/css">
#viewImg2{ /* 该对象用于在IE下显示预览图片 */    
 filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);    
 width:150px;
 height:150px;
 display:none;
 overflow: hidden;
}    
#viewImg{ /* 该对象只用来在IE下获得图片的原始尺寸,无其它用途 */    
  filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);   
  width:150px;
  height:150px;
  display:none;
  overflow:hidden;
}
</style>

<form id="uploadForm" action="" method="post" enctype="multipart/form-data">
<input type="file" id="headImg" onchange="view()" name="headImg"/>
<input type="submit" value="保存" id="btnSave" disabled="disabled" />
<p class="lineH30 color6">建议使用正方形的图片,支持JPG、GIF、PNG格式,100K以内。</p>
<div id="viewImg2"></div>
<img src="http://blog.163.com/zhchf_52@yeah/blog/" alt="" id="viewImg"/>
<script type="text/javascript">
    //file文件控件,viewer 图像查看,accept支持的文件格式的mimetype数组
    function viewImage(file, viewer, viewer2, btn, accept) {
        //判断浏览器
        var Sys = {};
        if (file && viewer) {
            if (!viewer2) {
                viewer2 = viewer;
            }
            if (!accept || accept.length == 0) {
                accept = ["image/png", "image/jpeg", "image/jpg", "image/gif", "image/bmp"];
            }
            var ua = navigator.userAgent.toLowerCase();
            var s;
            (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
            (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
            (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
            (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
            (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
            var path = "";
            if (Sys.ie) {
                viewer.style.display = "none";
                if (Sys.ie <= "6.0") {
                    //ie5.5,ie6.0
                    path = file.value;

}
                else if (Sys.ie >= "7.0") {
                    //ie7,ie8
                    file.select();
                    //加上这一句防止报告安全问题
                    file.blur();
                    path = document.selection.createRange().text;
                }
                v = isValidImage(path, accept);
                if (v) {
                    viewer2.style.display = "block";
                    if (viewer2.filters) {
                        viewer2.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = path;
                    }
                    else {
                        viewer2.src = path;
                    }
                }
            }
            else if (Sys.firefox) {
                viewer2.style.display = "none";
                viewer.style.display = "block";
                if (file.files && file.files.length > 0) {
                    if (accept.indexOf(file.files[0].type) > -1) {
                        var reader = new FileReader();
                        reader.readAsDataURL(file.files[0]);
                        //延迟一会等待文件读取完毕
                        var t = setTimeout(function () {
                            viewer.src = reader.result;
                            clearTimeout(t);
                        }, 100);
                        v = true;
                    }
                }
                else {
                    path = file.value;
                    v = isValidImage(path, accept);
                    if (v) {
                        viewer.src = file.value;
                    }
                }
            }
            else {
                viewer2.style.display = "none";
                viewer.style.display = "block";
                path = file.value;
                v = isValidImage(path, accept);
                if (v) {
                    viewer.src = file.value;
                }
            }

if (v) {
                if (btn) {
                    $("#" + btn).removeAttr("disabled");
                }
            }
            else {
                viewer.src="http://blog.163.com/zhchf_52@yeah/blog/";
                $("#btnSave").attr("disabled", "disabled");
            }
        }
    }
    //是否为有效的图片格式
    function isValidImage(path, accept) {
        var v = false;
        if (path
        && path.length > 0
        && path.indexOf(".") > 0
        && accept
        && accept.length > 0) {
            var idx = path.lastIndexOf(".") + 1;
            if (path.length > idx) {
                var ext = path.substr(idx).toLowerCase();
                for (var i = 0; i < accept.length; i++) {
                    if (accept[i].indexOf("/" + ext) > 0) {
                        v = true;
                        break;
                    }
                }
            }
        }
        return v;
    }

function autoSizePreview(objPre, originalWidth, originalHeight) {
        var zoomParam = clacImgZoomParam(150, 150, originalWidth, originalHeight);
        objPre.style.width = zoomParam.width + 'px';
        objPre.style.height = zoomParam.height + 'px';
        objPre.style.marginTop = zoomParam.top + 'px';
        objPre.style.marginLeft = zoomParam.left + 'px';
    }

function clacImgZoomParam(maxWidth, maxHeight, width, height) {
        var param = { width: width, height: height, top: 0, left: 0 };

if (width > maxWidth || height > maxHeight) {
            rateWidth = width / maxWidth;
            rateHeight = height / maxHeight;

if (rateWidth > rateHeight) {
                param.width = maxWidth;
                param.height = height / rateWidth;
            } else {
                param.width = width / rateHeight;
                param.height = maxHeight;
            }
        }

param.left = (maxWidth - param.width) / 2;
        param.top = (maxHeight - param.height) / 2;

return param;
    }

function view() {
        viewImage(document.getElementById("headImg"),
        document.getElementById("viewImg"),
        document.getElementById("viewImg2"),
        "btnSave",
        accept);
    }
</script>
</form>

js获取input file完整路径的方法的更多相关文章

  1. js 获取input file路径改变图像地址

    html代码 <img id="newImage" alt="100x100" src="__PUBLIC__/img/1.jpg" ...

  2. js获取input file路径改变图像地址

    版权声明:好歹是我写的或者总结的或者抄的,总待给我个名份吧~ https://blog.csdn.net/sangjinchao/article/details/52250318 html代码 < ...

  3. js获取 input file 图片缩略图

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. js 获取 input file 文件 附给 image src

    var a=document.querySelector('input[type=file]'); a.onchange = function (e) { //var reader = new Fil ...

  5. js获取input file文件二进制码

    <html> <body> <img id="image"src=""/> <br/> <input ty ...

  6. js 获取input type="file" 选择的文件大小、文件名称、上次修改时间、类型等信息

    文件名的传递 ---全路径获取 $('#file').change(function(){ $('#em').text($('#file').val()); }); 文件名的传递 ---只获取文件名 ...

  7. js清空input file的值

    原文:js清空input file的值 在做选择本地图片上传的功能时遇到一个问题,第一次点file按钮选择图片完成会触发onchange事件,获取文件后动态在界面上创建img标签展示,但把创建的img ...

  8. javascript中外部js文件取得自身完整路径得办法

    原文:javascript中外部js文件取得自身完整路径得办法 有时候我们需要引入一个外部js文件,这个js文件又需要用到自己的路径或者是所在的目录,别问怎么又这么变态的需求,开发做久了各种奇葩需求也 ...

  9. JS获取fileupload文件全路径

    来自:http://hi.baidu.com/libos88/item/c61ab8bae472afe34ec7fdfb 最近在写个小网站,用到了fileupload控件来上传文件.因为程序的某些需要 ...

随机推荐

  1. 微信内移动前端开发抓包调试工具fiddler使用教程

    在朋友圈看到一款疯转的H5小游戏,想要copy,什么?只能在微信里打开?小样,图样图森破,限制了oauth.微信浏览器内打开,照样能看你源码~ 使用fiddler来抓包 需要先做一些简单的准备工作: ...

  2. 【精度问题】【HDU2899】Strange fuction

    Strange fuction Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  3. IIS应用程序池自动回收问题的有效解决办法

    问题:Timer不能持续执行,如果长时间没有访问,就会被IIs自动回收.造成一些定时作业无法完成. 解决方式1:改用windows服务或是winform方式 解决方式2:在Application_En ...

  4. css3实现图片遮罩效果鼠标hover以后出现文字

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  5. sql中的split方法

    ALTER function [dbo].[f_split](@SourceSql varchar(8000),@StrSeprate varchar(10))returns @temp table( ...

  6. 关于DLL中Resources文件修改

    1.先用IL DASM工具将所需要修改的DLL进行文件转换成IL文件,其中*.il文件就是代码,*.resources,这个文件就是资源. 2.找到需要修改的resources文件 //新文件 IRe ...

  7. 自定义不等高的cell-(storyboard)

    对比自定义等高cell,需要几个额外的步骤(iOS8开始才支持) 添加子控件和contentView之间的间距约束 设置tableViewCell的真实行高和估算行高 // 告诉tableView所有 ...

  8. C++ buffer缓冲区的秘密

    在搞数据库和C++进行连接的时候,遇到一个问题,就是如果前面用到了fflush(stdin)即清空缓冲区,就OK,如果不清空缓冲区就不能把记录加入到Mysql的数据库中, 但是即便如此,这个问题目前还 ...

  9. Ajax表单提交及后台处理简单应用

    首先先说下表单提交吧,要提交表单那么就得先收集表单数据(至于验证这个我就不说了,要说留下下次吧),有了jquery取个html的值还是简单$("xxid").val()等就完了,但 ...

  10. linux 生产环境搭建

    Linux基础命令杂记   今天又一次搞Linux生产环境搭建.这是种步骤很多,很繁琐而且又不得不做的事情.虽然做过很多次,但还是有很多步骤.命令不记得,每一次到处找资料很麻烦,于是将一些步骤记下,以 ...