在input file 选择了图片,就可在另一个img标签中显示图片,我知道的有两种方法:
1,用ajax把图片上传到服务器,返回地址,这种可以,可我现在想实现的效果不是这种,
2,得到file的value,付给img的src,可我得到的是图片名称,请高手指教

解决方案 »

  1.   

    只有第一种兼容 大部分浏览器;
    其它的都是野狐禅,各种不兼容; <p>兼容IE6、IE7</p>
            <div id="newPreview"></div>
            <div id="showPicUrl"></div>
            <hr />
            <p>
                选择图片:<input type="file" size="20" onchange="javascript:PreviewImg(this);" />
            </p>
      function PreviewImg(imgFile) {        var newPreview = document.getElementById("newPreview");
            var imgDiv = document.createElement("div");
            document.body.appendChild(imgDiv);
            imgDiv.style.width = "118px"; imgDiv.style.height = "127px";
            imgDiv.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod = scale)";
            imgDiv.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;
            newPreview.appendChild(imgDiv);
            var showPicUrl = document.getElementById("showPicUrl");
            showPicUrl.innerText = imgFile.value;
            newPreview.style.width = "80px";
            newPreview.style.height = "60px";
        }
      

  2.   

    javascript客户端图片预览,兼容最新firefox,chrome和IE
      

  3.   

    我技术博客上有:http://blog.csdn.net/nhconch/article/details/7295456
    回复内容有更详细内容,请稳步博客。<!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-Type" content="text/html; charset=utf-8" />       
    <title>本地图片预览</title>       
    <style type="text/css">  
    #preview{width:100px;height:100px;border:1px solid #000;overflow:hidden;}  
    #imghead {filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);}  
    </style>  
    <script type="text/javascript">  
    function previewImage(file)  
    {  
      var MAXWIDTH  = 100;  
      var MAXHEIGHT = 100;  
      var div = document.getElementById('preview');  
      if (file.files && file.files[0])  
      {  
        div.innerHTML = '<img id=imghead>';  
        var img = document.getElementById('imghead');  
        img.onload = function(){  
          var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);  
          img.width = rect.width;  
          img.height = rect.height;  
          img.style.marginLeft = rect.left+'px';  
          img.style.marginTop = rect.top+'px';  
        }  
        var reader = new FileReader();  
        reader.onload = function(evt){img.src = evt.target.result;}  
        reader.readAsDataURL(file.files[0]);  
      }  
      else  
      {  
        var sFilter='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="';  
        file.select();  
        var src = document.selection.createRange().text;  
        div.innerHTML = '<img id=imghead>';  
        var img = document.getElementById('imghead');  
        img.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = src;  
        var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);  
        status =('rect:'+rect.top+','+rect.left+','+rect.width+','+rect.height);  
        div.innerHTML = "<div id=divhead style='width:"+rect.width+"px;height:"+rect.height+"px;margin-top:"+rect.top+"px;margin-left:"+rect.left+"px;"+sFilter+src+"\"'></div>";  
      }  
    }  
    function clacImgZoomParam( maxWidth, maxHeight, width, height ){  
        var param = {top:0, left:0, width:width, height:height};  
        if( width>maxWidth || height>maxHeight )  
        {  
            rateWidth = width / maxWidth;  
            rateHeight = height / maxHeight;  
              
            if( rateWidth > rateHeight )  
            {  
                param.width =  maxWidth;  
                param.height = Math.round(height / rateWidth);  
            }else  
            {  
                param.width = Math.round(width / rateHeight);  
                param.height = maxHeight;  
            }  
        }  
          
        param.left = Math.round((maxWidth - param.width) / 2);  
        param.top = Math.round((maxHeight - param.height) / 2);  
        return param;  
    }  
    </script>       
    </head>       
    <body>  
    <div id="preview">  
        <img id="imghead" width=100 height=100 border=0 src='../images/head01_big.jpg'>  
    </div>  
        <br/>       
        <input type="file" onchange="previewImage(this)" />       
    </body>       
    </html>
      

  4.   

    你指的所有包括哪些。
    html5的完全没问题,剩下就是各个版本的IE了,实际上IE9做一点点改动就可以了。方法在回复里
      

  5.   

    baiduhttp://www.baidu.com