您的位置:首页 > 编程语言 > ASP

在一个ASP.Net页中实现上传照片并存入数据库,上传后显示所上传的照片

2009-02-23 15:41 543 查看
using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.IO;

using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e)

{

}

protected void Button1_Click(object sender, EventArgs e)

{

#region 测试写入

if (!FileUpload1.HasFile)

{

Response.Write("请选择图片");

}

string fileEx = System.IO.Path.GetExtension(this.FileUpload1.FileName); //获取图片扩展名

if (fileEx != ".gif" && fileEx != ".jpg" && fileEx != ".jpeg" && fileEx!= ".bmp")

{

Response.Write("只能上传图片");

}

else

{

// ImageType 有用,读取图片的时候需要

int imgSize = this.FileUpload1.PostedFile.ContentLength; //图片大小 (字节)

string imgType = this.FileUpload1.PostedFile.ContentType; //图片类型

string imgPath = this.FileUpload1.PostedFile.FileName; //获取图片路径

string imgName = this.FileUpload1.FileName; //获取图片名字

int imgLength = this.FileUpload1.FileName.Length; //获取图片长度

if (imgLength <= 0)//判断是否有图片

return;

Byte[] imgByte = new Byte[imgSize]; //用图片的长度来初始化一个字节数组存储临时的图片文件

Stream stream = this.FileUpload1.PostedFile.InputStream; //建立文件流对象

stream.Read(imgByte, 0, imgSize);// 读取图片数据到临时存储体imgByte,0为数据指针位置,fileLength为数据长度

//this.FileUpload1.FileBytes

try

{

string connection = ConfigurationManager.ConnectionStrings["DBConn"].ConnectionString;

SqlConnection sqlconn = new SqlConnection(connection);

sqlconn.Open();

string sqlcmd = "insert into Image values (@ImageType,@ImageData,@ImageTitle)";

SqlCommand sqc = new SqlCommand(sqlcmd, sqlconn);

sqc.Parameters.Add("@ImageType", SqlDbType.VarChar, 50).Value = imgType;

sqc.Parameters.Add("@ImageData", SqlDbType.Image, imgSize).Value = this.FileUpload1.FileBytes;// imgByte;//将二进制的图片赋值给@ImageData

sqc.Parameters.Add("@ImageTitle", SqlDbType.VarChar, 50).Value = imgName;

int result = sqc.ExecuteNonQuery();

sqlconn.Close();

if (result != 0)

{

Response.Write("OK");

}

else

{

Response.Write("NO");

}

}

catch (Exception ex)

{

Response.Write(ex.StackTrace);

}

finally

{

}

}

#endregion

}

}

这个是存进去的

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.IO;

using System.Data.SqlClient;

public partial class Default2 : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (!Page.IsPostBack)

{

#region 测试读取

string sqlCmd = "select top 1 * from Image order by imageID desc";

string connection = ConfigurationManager.ConnectionStrings["DBConn"].ConnectionString;

SqlConnection sqlconn = new SqlConnection(connection);

try

{

sqlconn.Open();

SqlCommand sqc = new SqlCommand(sqlCmd, sqlconn);

//Response.ContentType = "image/pjpeg";

using (SqlDataReader sdr = sqc.ExecuteReader())

{

while (sdr.Read())

{

//Response.ContentType = sdr["imageType"].ToString();

Response.Clear();

Response.BinaryWrite((byte[])sdr["imageData"]);

}

}

//sdr.Close();

//sqlconn.Close();

}

catch (Exception ex)

{

Response.Write(ex.StackTrace);

}

finally

{

sqlconn.Close();

}

#endregion

}

}

}

这个是取出来的,在页面要放一个容器去接收图片!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: