我的页面上有3个控件:image、fileupload、button(图片提交按键)
运行时,在点击fileupload的“浏览”键后,希望在iamge中也显示,请问如何实现?谢谢!给出先有代码:protected void Page_Load(object sender, EventArgs e)
        {
            if (File.Exists(@"D:\wwwnew\tupianshangchuan\tupianshangchuan\image\179.jpg") == false) //不存在该图片文件
            {
                Image1.ImageUrl = Server.MapPath("~/image/") + "179.jpg";
            }
            else //存在该图片文件 
            {
                Image1.ImageUrl = Server.MapPath("~/image/") + "touxiang.jpg";
            }
           
        }        protected void Button1_Click(object sender, EventArgs e)
        {
            bool Files = false;
            //判断文件的类型是否符合要求
            if (this.FileUpload1.HasFile)
            {
                //获取删除文件的后缀
                string fileSuffix = System.IO.Path.GetExtension(this.FileUpload1.FileName).ToLower();
                string[] Suffix = { ".jpg", ".bmp", ".gif", ".png" };
                //判断文件是否符合要求
                for (int i = 0; i < Suffix.Length; i++)
                {
                    if (fileSuffix == Suffix[i])
                    {
                        Files = true;
                    }
                }
            }            //如果符合要求就上传,并显示信息
            if (Files == true)
            {
                //this.Image1.ImageUrl = "~/imager/" + FileUpload1.FileName;
                this.Image1.ImageUrl = FileUpload1.FileName;
                this.FileUpload1.SaveAs(Server.MapPath("~/image/") + FileUpload1.FileName);
                // this.FileUpload1.SaveAs(Request.PhysicalApplicationPath+"\\"+"123\\" + FileUpload1.FileName);
            }
            else
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('文件上传失败!');</script>");            }
}

解决方案 »

  1.   

    这一篇很好:
    http://topic.csdn.net/u/20091224/16/f37b7c72-0aaf-4e9d-9bd5-9af1fefd48be.html?40917
      

  2.   

    <script language="javascript" type="text/javascript"> 
            function PreviewImg(imgFile) 
            {    
                var newPreview = document.getElementById("newPreview"); 
                newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value; 
                newPreview.style.width = "80px"; 
                newPreview.style.height = "60px"; 
            } 
        </script> 
    <asp:FileUpload ID="FileUpload1" runat="server" onchange="PreviewImg(this)"  /> 
    <div id="newPreview"> </div> 
    function $(o){return document.getElementById(o);} 
    function CheckImg(o,img) 

        if (!/\.((jpg)|(bmp)|(gif)|(png))$/ig.test(o.value)) 
        { 
            alert('只能上传jpg,bmp,gif,png格式图片!'); 
            o.outerHTML = o.outerHTML; 
        } 
        else 
        { 
            $(img).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src=o.value; 
        } 
    } <asp:FileUpload ID="FileUpload1" runat="server"  onchange="CheckImg(this, 'img');"  /> 
    <div id="img" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src= <%= pic%>,sizingMethod=scale);width:88px;height:113px;"> </div> 
    public string pic=""; 
      

  3.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!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 runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>上传图片前预览(兼容Firefox3,IE6,IE7,IE8)</title> 
    <style type="text/css"> 
    #preview_wrapper{   
        display:inline-block;   
        width:300px;   
        height:300px;   
        background-color:#CCC;   
    }   
    #preview_fake{ /* 该对象用户在IE下显示预览图片 */   
        filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);   
    }   
    #preview_size_fake{ /* 该对象只用来在IE下获得图片的原始尺寸,无其它用途 */   
        filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);     
        visibility:hidden;   
    }   
    #preview{ /* 该对象用户在FF下显示预览图片 */   
        width:300px;   
        height:300px;   
    }   
    </style><script type="text/javascript"> 
    function onUploadImgChange(sender){   
        if( !sender.value.match( /.jpg|.gif|.png|.bmp/i ) ){   
            alert('图片格式无效!');   
            return false;   
        }   
           
        var objPreview = document.getElementById( 'preview' );   
        var objPreviewFake = document.getElementById( 'preview_fake' );   
        var objPreviewSizeFake = document.getElementById( 'preview_size_fake' );   
           
        if( sender.files && sender.files[0] ){   
            objPreview.style.display = 'block';   
            objPreview.style.width = 'auto';   
            objPreview.style.height = 'auto';   
               
            // Firefox 因安全性问题已无法直接通过 input[file].value 获取完整的文件路径   
            objPreview.src = sender.files[0].getAsDataURL();       
        }else if( objPreviewFake.filters ){    
            // IE7,IE8 在设置本地图片地址为 img.src 时出现莫名其妙的后果   
            //(相同环境有时能显示,有时不显示),因此只能用滤镜来解决   
               
            // IE7, IE8因安全性问题已无法直接通过 input[file].value 获取完整的文件路径   
            sender.select();   
            var imgSrc = document.selection.createRange().text;   
               
            objPreviewFake.filters.item(   
                'DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;   
            objPreviewSizeFake.filters.item(   
                'DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;   
               
            autoSizePreview( objPreviewFake,    
                objPreviewSizeFake.offsetWidth, objPreviewSizeFake.offsetHeight );   
            objPreview.style.display = 'none';   
        }   
    }  function onPreviewLoad(sender){   
        autoSizePreview( sender, sender.offsetWidth, sender.offsetHeight );   
    }  function autoSizePreview( objPre, originalWidth, originalHeight ){   
        var zoomParam = clacImgZoomParam( 300, 300, 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;   
    }   
    </script></head>
    <body>
        <form id="form1" runat="server">
        <div>
        <table style="width: 307px"><!--开始,在Ajax下的ScriptManager1中的UpdatePanel中不能用1FileUpload1-->
            <tr>
                <td colspan="3" rowspan="3">
                   <div id="preview_wrapper"> 
            <div id="preview_fake"> 
                <img src="" alt="图片预览" id="preview" onload="onPreviewLoad(this)"/> 
            </div> 
        </div> </td>
            </tr>
            <tr>
            </tr>
            <tr>
            </tr>
        </table>
        <br/> 
        <!--<input id="upload_img" type="file" onchange="onUploadImgChange(this)"/> --> <!--原来的HTML选择框,在asp.net中不使用-->
            <asp:FileUpload ID="FileUpload1" runat="server" onchange="onUploadImgChange(this)"/><br/> <!--主要事件onchange="onUploadImgChange(this)"-->
            <!--会警告ASP.Net 属性“onchange”不是元素“FileUpload”的有效属性,但不影响使用。-->
        <img src="" alt="图片预览" id="preview_size_fake"/><!--去掉此句,不能预览-->&nbsp;
        </div>
        </form>
    </body>
    </html>//
    //把这句:<asp:FileUpload ID="FileUpload1" runat="server" onchange="onUploadImgChange(this)"/>
    //改为:<asp:FileUpload ID="FileUpload1" runat="server" />
    //在后台:
    //protected void Page_Load(object sender, EventArgs e)
        {
            FileUpload1.Attributes.Add("onchange", " onUploadImgChange(this) ");
        }
    //就不会出现:<!--会警告ASP.Net 属性“onchange”不是元素“FileUpload”的有效属性-->
      

  4.   

    <script>
       function show(obj){
          document.getElementById("imgtest").src=obj.value;
       }
    </script>
    <img src="" id="imgtest" />
    <asp:FileUpload ID="FileUpload1" runat="server" onchange="show(this)"/>