aspx上传、预览图片

//aspx

 <table>
	 <tr>
		<td>
			<asp:Image ID="imgshow" runat="server" Height="80px" ToolTip="图片预览" Width="80px"
				onmouseover="over();" onmouseout="out()" AlternateText="图片预览" ImageUrl="../../Resource/Images/noImage.gif" />
			<div id="divImage" style="position: absolute; display: none; border: 9px solid gray;">
				<asp:Image ID="imgbig" runat="server" ImageUrl="../../Resource/Images/noImage.gif" />
			</div>
		</td>
		<td class="right">
			<table>
			
				<tr>
					<asp:FileUpload runat="server" ID="fileImageData" Width="195px" />
				</tr>
				<tr>
					<asp:Button ID="btn_Upload" runat="server" CssClass="nButton" Text="预览图片" OnClick="btn_Upload_Click"/>
				</tr>
			</table>
		</td>
	</tr>
</table>

 
//javascript

        //显示图片
		function over()
		{
		    //图片的最大大小  4/3的大小  520 390
			maxwidth=520;
			maxheight=390;
			
			//显示
			document.getElementById('divImage').style.display="";
			//设置div的位置
			var obj= document.getElementById('divImage');
			obj.style.left=316;
			obj.style.bottom=115;//202  115
			
			//获取img 设置图片的大小
            var img=document.getElementById('divImage').firstChild;
            
            //1、宽和高都超过了,看谁超过的多,其余策略按照2、3
            //2、如果宽超过了并且高没有超,设置宽为最大值
            //3、如果宽没超过并且高超过了,设置高为最大值

            if(img.width>maxwidth&&img.height>maxheight)
            {
                pare=(img.width-maxwidth)-(img.height-maxheight);
                if(pare>=0)
                    img.width=maxwidth;
                else
                    img.height=maxheight;
            }
            else if(img.width>maxwidth&&img.height<=maxheight)
            {
                img.width=maxwidth;
            }
            else if(img.width<=maxwidth&&img.height>maxheight)
            {
                img.height=maxheight;
            }
            else
            {
	            
            }
			            
		}
		
		//隐藏图片
		function out()
		{
			document.getElementById('divImage').style.display="none";
		}

		
		


//后台
		
    #region 图片相关操作

  
    /// <summary>
    /// 预览图片按钮事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btn_Upload_Click(object sender, EventArgs e)
    {
        PictureSee();
    }

    /// <summary>
    /// 预览图片
    /// </summary>
    /// <returns>预览结果:0、成功;1、失败</returns>
    protected int PictureSee()
    {
        //支持的扩展名,必须小写
        string strImageType = "jpg/jpeg/gif";

        //最大数据量 单位kb
        int intMaxData = 500;

        //图片名
        string strFileName = fileImageData.FileName;

        //判断是否存在图片
        if (strFileName != null && strFileName != "")
        {
            //获取文件的扩展名,转化成小写形式,并判断是否支持该扩展名
            if (strImageType.Contains(strFileName.Split('.')[1].ToLower()))
            {
                byte[] buffer = fileImageData.FileBytes;

                //判断图片大小
                int x = buffer.Length;
                if (x / 1024 > intMaxData)
                {
                    Alert("图片文件太大,不能超过500k!");
                    return 1;
                }
                else
                {
                    //开始预览                        
                    Session["image"] = buffer;
                    this.imgshow.ImageUrl = "~/Pages/MatlCategoryManagerMod/ShowImage.aspx";
                    this.imgbig.ImageUrl = "~/Pages/MatlCategoryManagerMod/ShowImage.aspx";

                }
            }
            else
            {
                Alert("不支持此扩展名图片!");
                return 1;
            }
        }

        return 0;
    }

    #endregion




显示用aspx

    /// <summary>
    /// 页面初始化
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Page_Load(object sender, EventArgs e)
    {
       
        //查询数据库获取图片
        if (Request["传过来的参数名"] != null)
        {
            

            //查询
            DataSet ds = 从数据库中查询
            byte[] img = null;
            if (ds.Tables.Count > 0)
            {
                DataTable dtimg = ds.Tables[0];
                if (dtimg.Rows.Count > 0)
                {
                    if (!(dtimg.Rows[0]["BPICTCONTENT"] is System.DBNull))
                    {
                        //显示图片
                        img = (byte[])dtimg.Rows[0]["BPICTCONTENT"] as byte[];
                        Session["image"] = img;
                        Response.ContentType = "application/octet-stream";
                        Response.BinaryWrite(img);
                        Response.End();
                    }
                }
            }
        }
        else   //显示session中的图片
        {
            if (Session["image"] != null)
            {

                //显示图片
                byte[] img = (byte[])Session["image"];
                Response.ContentType = "application/octet-stream";
                Response.BinaryWrite(img);
                Response.End();
               
            }
        }
    }





 

posted @ 2012-12-22 15:08  java程序员填空  阅读(401)  评论(0编辑  收藏  举报