日期:2014-05-16  浏览次数:20415 次

file 获取 上传图片路径 问题
HTML code

<input type="file" name="we_pic_310_250" id="we_pic_310_250" />



JScript code

function img_va(){
        var file=$we_pic_310_250.val();
        var img=null;
        if(img)img.removeNode(true);
        img=document.createElement("img");
        img.style.position="absolute";
        img.style.visibility="hidden";
        document.body.insertAdjacentElement("beforeend",img);
        img.src=file;
        
        if(img.offsetWidth == 310 && img.offsetHeight == 250){
            return true
        }else{
            return false
        }
    }



直接打开网页 D:\MyServer\Apache2.2.9\htdocs\web.html
这里 img.src=file; 
显示的图片路径是 "C:\\Users\\Public\\Pictures\\Sample Pictures\\Hydrangeas.jpg"
 img.offsetWidth 能正常获取到图片的值

但用 http://127.0.0.1/web.html 打开网页 
这里 img.src=file; 
显示的图片路径是 "C:\\fakepath\\Hydrangeas.jpg"
img.offsetWidth 就获取不到图片的值

这问用 http://127.0.0.1/web.html 打开怎么改才能获取到图片的值啊

------解决方案--------------------
JScript code
function uploadIMG(obj) {
        obj.select();
        var filepath = document.selection.createRange().text;
}

------解决方案--------------------
用flash做吧!!!
------解决方案--------------------
安全机制,file手动不能设置
------解决方案--------------------
你把路径地址改为绝对地址就可以啦
------解决方案--------------------
先要上传到Web服务器项目指定目录中,之后才可以使用
------解决方案--------------------
一般都是后台来判断的,比如说像文件的大小好像就不能用js获取。
而且如果用js获取还要判断是那种浏览器,IE跟FF获取文件的信息好像就不一样。
------解决方案--------------------
<input type="hidden" name="filePath">
<input type="file" name="file" onchange="filePath.value=this.value;">
<input type="button" value="test" onclick="alert(filePath.value);">

IE8,没想到一个网站里面的上传图片时用JavaScript预览本地图片的功能失效了,图片总是显示错误,用alert()看了下图片的路径居然变成了C:\fakepath\*.jpg,真实的路径被C:\fakepath\取代了,于是在网上开始找解决方案。原来是因为IE8增加了安全选项,默认情况下不显示上传文件的真实路径,进入internet选项,修改下设置即可显示真实的文件路径。 
  以下就是操作步骤:

工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可。






附带不用修改浏览器安全配置的javascript代码,兼容ie, firefox全系列

function getPath(obj) { if(obj) { if (window.navigator.userAgent.indexOf("MSIE")>=1) { obj.select(); return document.selection.createRange().text; } else if(window.navigator.userAgent.indexOf("Firefox")>=1) { if(obj.files) { return obj.files.item(0).getAsDataURL(); } return obj.value; } return obj.value; } } 参数obj为input file对象
------解决方案--------------------
是安全机制没错的,浏览器处于安全考虑,把你的地址封装了,不管你这么上传都会有fakepath,你只能用绝对路劲了。
HTML code

    //获取上传控件的图片绝对地址
     function getPath(obj)
      {
        if (obj) {
           if (window.navigator.userAgent.indexOf("MSIE") >= 1) {
                obj.select();
                return document.selection.createRange().text;
                }
           else if (window.navigator.userAgent.indexOf("Firefox") >= 1) {
                if (obj.files) {
                   return obj.files.item(0).getAsDataURL();