
一、上传图片并存入数据库Image字段(AddBook.aspx.cs)
using System.Data.SqlClient;
using System.IO;
public partial class AddBook : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnPostup_Click(object sender, EventArgs e)
{
//string Path;
//string FileName;
//int Po;
//long FileSize;
//string fType;
//if (File1.PostedFile.FileName.Trim() != "") //PostFile's Filename is not empty
//{
// Path = Server.MapPath("UpFile").ToString();
// FileName = File1.PostedFile.FileName.ToString();
// fType = File1.PostedFile.ContentType;
// FileSize = File1.PostedFile.ContentLength;
// if (fType.Substring(0, 5) != "image")
// {
// Response.Write("PostFile is not Image!");
// return;
// }
// Po = FileName.LastIndexOf((char)92);
// FileName = FileName.Substring(Po + 1, FileName.Length - Po - 1);
// ViewState["PostFileName"] = FileName; //Remember PostFile's name
// File1.PostedFile.SaveAs(Path + "\\\\" + FileName);
// imgBook.ImageUrl = "UpFile\\\\" + FileName;
//}
//获取文件全路径
string fullFileName = this.File1.PostedFile.FileName;
//获取文件名
string fileName = fullFileName.Substring(fullFileName.LastIndexOf("\\\\") + 1);
//获取文件扩展名
string ext = fullFileName.Substring(fullFileName.LastIndexOf(".") + 1);
ViewState["PostFileName"] = fileName;
if (ext == "bmp" || ext == "gif" || ext == "jpg" || ext == "png")
{
this.File1.PostedFile.SaveAs(Server.MapPath("UpFile") + "\\\\" + fileName); ;
imgBook.ImageUrl = "UpFile/" + fileName;
}
else
{
Response.Write("文件格式不正确");
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
//byte[] ImageBuffer;
//string FileName = Server.MapPath("UpFile").ToString().Trim() + "\\\\" + ViewState["PostFileName"];
//FileInfo TpFile = new FileInfo(FileName);
//int ImageSize = (int)TpFile.Length;
//FileStream fs = new FileStream(FileName, FileMode.OpenOrCreate);
//BinaryReader r = new BinaryReader(fs);
//r.BaseStream.Seek(0, SeekOrigin.Begin);
//ImageBuffer = r.ReadBytes(ImageSize);
string FileName = Server.MapPath("UpFile").ToString().Trim() + "\\\\" + ViewState["PostFileName"];
FileInfo TpFile = new FileInfo(FileName);
byte[] ImageBuffer = new byte[TpFile.Length];
FileStream stream = TpFile.OpenRead();//创建只读的FileStream对象
stream.Read(ImageBuffer, 0, ImageBuffer.Length);
stream.Close();
string strCon = "server=(local);database=mydb;integrated security=sspi";
SqlConnection conn = new SqlConnection(strCon);
conn.Open();
//string strCom = "insert into book(bookName,bookImg) values(@bookName,@bookImage)";
string strCom = "insert into book(bookName,bookImg,imageUrl) values(@bookName,@bookImage,@imageUrl)";
SqlCommand com = new SqlCommand(strCom, conn);
com.Parameters.Add("@bookName", SqlDbType.VarChar, 50).Value = txtBookName.Text;
com.Parameters.Add("@bookImage", SqlDbType.Image).Value = ImageBuffer;
com.Parameters.Add("@imageUrl", SqlDbType.VarChar, 100).Value = "UpFile/" + ViewState["PostFileName"];
com.ExecuteNonQuery();
}
}
二、读取数据库的Image字段(ReadImage.aspx.cs)
using System.Data.SqlClient;
public partial class ReadImage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//int id = int.Parse(Request.QueryString["id"].Trim());
string strCon = "server=(local);database=mydb;integrated security=sspi";
SqlConnection conn = new SqlConnection(strCon);
conn.Open();
SqlCommand com = new SqlCommand("select * from book where bookID=2", conn);
SqlDataAdapter da = new SqlDataAdapter(com);
DataSet ds = new DataSet();
da.Fill(ds);
DataView myDv = ds.Tables[0].DefaultView;
try
{
Response.ContentType = "image/*";
Response.BinaryWrite((byte[])myDv[0]["bookImg"]);
}
catch
{
Response.Write();
}
}
}
设置Default中Image控件的ImageUrl属性为:ReadImage.aspx
