asp.net c# 在.NET里面怎样上传图片到数据库,又怎样从数据库中读出来显示在网页上?
asp.net c# 在.NET里面怎样上传图片到数据库,又怎样从数据库中读出来显示在网页上?.net2005里面建立了一个WebForm,怎么在上面上传图片,并且从数据库中读出来显示? --------------------编程问答-------------------- 怎么弄啊? 哪位大虾帮帮忙~~ --------------------编程问答-------------------- 我这个是WinForm 保存和读取图片的代码 ,和WebForm 原理是一样的,你参考下:
private void 易做图Button1_Click(object sender, EventArgs e)
{
string pathName;
OpenFileDialog opf = new OpenFileDialog();
if (opf.ShowDialog() == DialogResult.OK)
{
pathName = opf.FileName;
FileStream fs = new FileStream(pathName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
byte[] buffByte = new byte[fs.Length];
fs.Read(buffByte, 0, (int)fs.Length);
fs.Close();
SqlConnection conn = new SqlConnection(@"server=192.168.0.15\ERP5;database=bizcent_books;uid=sa;pwd=11");
SqlCommand command = new SqlCommand(@"UPDATE [000].tbGoods set GoodsPic=@img WHERE GoodsCode='0000000002'", conn);
command.Parameters.Add("@img", System.Data.SqlDbType.Image);
command.Parameters[0].Value = buffByte;
try
{
conn.Open();
command.ExecuteNonQuery();
MessageBox.Show("Ok");
}
catch (Exception ex)
{ MessageBox.Show(ex.Message); }
finally
{
conn.Close();
}
}
}
private void 易做图Button2_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(@"server=192.168.0.15\ERP5;database=bizcent_books;uid=sa;pwd=11");
DataTable dt = new DataTable();
SqlDataAdapter adp = new SqlDataAdapter("select Pic from tbImg where ID='7cc08e'", conn);
adp.Fill(dt);
byte[] buffByte = (byte[])dt.Rows[0][0];
MemoryStream ms = new MemoryStream(buffByte);
Image image = Image.FromStream(ms, true);
this.pictureEdit1.Image = image;
} --------------------编程问答-------------------- 数据库字段为image类型,将图片转化为byte[],保存到数据库,参考:
public byte[] GetPhoto(string filePath)
{
try
{
FileStream stream = new FileStream(
filePath, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(stream);
byte[] photo = reader.ReadBytes((int)stream.Length);
reader.Close();
stream.Close();
if (photo.Length > (1024 * 1024))
{
MessageBox.Show(SettingFormResources.PictureTooBig);
return null;
}
return photo;
}
catch
{
return null;
}
}
--------------------编程问答-------------------- 把图片保存到数据库。太失败了。数据库不是用来放图片的。 --------------------编程问答-------------------- 你在数据库里面,存放图片的形式是什么样的呢?》 --------------------编程问答--------------------
Response.Clear();
Response.ContentType = "image/gif";
Response.Write ......//输出
Response.End();
存放路径是怎么搞的呢?? --------------------编程问答--------------------
也不一定,看什么场合。世事无绝对,很多应用就需要把图片保存在数据库中。
一般来讲,如果所保存的图片体积小,数量大,强烈建议直接保存在数据库中。
图片存数据库就是:数据库字段为image类型,将图片转化为byte[],保存到数据库,
--------------------编程问答--------------------
有没有实现的代码啊? --------------------编程问答-------------------- http://topic.csdn.net/u/20080508/20/2c480ff0-783d-44db-b0a5-78f6ca014aff.html?seed=1800136528
已经给你回复了 --------------------编程问答-------------------- 建议保存路径 --------------------编程问答-------------------- 可我为什么显示 System.Byte[]了啊? --------------------编程问答-------------------- 那位说保存路径的仁兄 , 请问存为路径后怎样读到DataGridView里面呢? --------------------编程问答-------------------- ok --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- 最关键的就是存储路径啊 然后根据路径显示图片 网上的例子挺多 看一下就可以了啊 --------------------编程问答-------------------- protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
// Directory.CreateDirectory(Server.MapPath("Pirctures/"));
string path=Server.MapPath("Pirctures/");
string name=FileUpload1.FileName;
string fullpath=path+name;
FileUpload1.PostedFile.SaveAs(fullpath);
Image1.ImageUrl = "Pictures/"+name;
}
}
为什么图片不能正确显示 --------------------编程问答--------------------
有个问题不明白,像您这样的话,假设有两个用户访问,他们先后上传图片,此时name应该是第二个用户的图片吧,那么第一个用户刷新页面会不会显示的是第二个用户上传的图片? --------------------编程问答-------------------- 在FileUpload1 里加一句 onchange="document.getElementById('img').src=this.value" 当选择一张图片的时候,img就会显示图片,上传之后,改变数据库里的名字就行了,为了名字不重复,所以上传图片的时候要给上传的图片改个不会重复的名字
补充:.NET技术 , C#