将图片上传变小存入数据库(C#写ASP.NET)怎么实现 我的程序怎么也调不过,请大家帮忙. 最好在内存中完成,而不写临时文件 数据库想用存储过程,请大家闺秀帮忙,最好能给例子, 在这里我先谢了. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.knowsky.com/5723.htmlhttp://www.netbei.com/Article/aspx/aspx2/200409/2717.html http://www.pconline.com.cn/pcedu/empolder/net/10309/215678.htmlhttp://www.blueidea.com/tech/program/2003/895.asp http://www.yesky.com/20030311/1656281.shtml你把生成的缩略图读入内存,然后把它再上传.....不是很复杂的.. imgdatastream.Read(imgbig,0,postedFile.ContentLength); image = System.Drawing.Image.FromStream(postedFile.InputStream); newimage = image.GetThumbnailImage(100, 75, null,IntPtr.Zero); image.Dispose(); 这个比较难哦。下面是我刚试成功的代码。private string Conn = "Provider=SQLOLEDB;SERVER=(local);uid=sa;pwd=sa;database=dbtest";private void button1_Click(object sender, EventArgs e) //选择图片{ this.openFileDialog1.ShowDialog(); this.textBox2.Text = this.openFileDialog1.FileName;}private void button2_Click(object sender, EventArgs e) //将选择到的图片保存到数据库中,不使用临时文件{ try { Image image = Image.FromFile(this.textBox2.Text); Bitmap smallImage = new Bitmap(image.Width/4, image.Height/4); Graphics g = Graphics.FromImage(smallImage); g.DrawImage(image, new Rectangle(new Point(0, 0), smallImage.Size), new Rectangle(new Point(0, 0), image.Size), GraphicsUnit.Pixel); image.Dispose(); OleDbConnection conn = new OleDbConnection(Conn); OleDbCommand cmd = null; cmd = conn.CreateCommand(); conn.Open(); cmd.CommandText = "insert into 图像库(图像) values(?)"; MemoryStream ms = new MemoryStream(); smallImage.Save(ms, ImageFormat.Png); ms.Seek(0, SeekOrigin.Begin); BinaryReader sr = new BinaryReader(ms); byte[] bts = sr.ReadBytes((int) ms.Length); cmd.Parameters.Add("@图像", OleDbType.VarBinary).Value = bts; cmd.ExecuteNonQuery(); g.Dispose(); ms.Close(); sr.Close(); smallImage.Dispose(); conn.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); }}private void button3_Click(object sender, EventArgs e)//将数据库中图片显示到panel上,不使用临时文件{ try { OleDbConnection conn = new OleDbConnection(Conn); OleDbDataAdapter dapter = new OleDbDataAdapter("select 图像 from 图像库", Conn); DataSet ds = new DataSet("图像库"); dapter.Fill(ds); int height = 0; Graphics g = this.panel1.CreateGraphics(); foreach(DataRow dr in ds.Tables[0].Rows) { byte[] bts = (byte[])dr["图像"]; MemoryStream ms = new MemoryStream(); BinaryWriter wr = new BinaryWriter(ms); wr.Write(bts,0,bts.Length); ms.Flush(); ms.Seek(0,SeekOrigin.Begin); Image image = Image.FromStream(ms); g .DrawImage(image,new Rectangle(new Point(20,height),image.Size),new Rectangle(new Point(0,0),image.Size),GraphicsUnit.Pixel); height+= image.Height; ms.Close(); wr.Close(); image.Dispose(); } g.Dispose(); } catch (Exception ex) { MessageBox.Show(ex.Message); }} image对象有宽和高属性的,可以根据这个和指定比例缩小或者放大. GridView模板列中如何把邦定的数据传值给JS方法呢? 求相同用户的一条时间最早的记录 psam卡 和 sam卡 怎么读取 里面的数据 一个自来水IC卡收费管理系统大概多少钱 非常奇怪的问题,请大家帮下忙,asp.net页面回发时找不到Cookie, 怎样通过URL路径获取图片文件直接写入2进制流?在线等 VS2003是不是没有母板功能怎么办?? 新人报到,请多关照. asp.net 特殊的xml节点如何处理 从一个项目引用另一个项目,为什么看不到被引用项目的注释? 这个正则[0-9]*.[0-9]{0,2}为啥不行? Asp.net 如何调用ActiveX控件中的函数?
http://www.netbei.com/Article/aspx/aspx2/200409/2717.html
http://www.blueidea.com/tech/program/2003/895.asp
不是很复杂的..
image = System.Drawing.Image.FromStream(postedFile.InputStream);
newimage = image.GetThumbnailImage(100, 75, null,IntPtr.Zero);
image.Dispose();
private string Conn = "Provider=SQLOLEDB;SERVER=(local);uid=sa;pwd=sa;database=dbtest";
private void button1_Click(object sender, EventArgs e) //选择图片
{
this.openFileDialog1.ShowDialog();
this.textBox2.Text = this.openFileDialog1.FileName;
}private void button2_Click(object sender, EventArgs e) //将选择到的图片保存到数据库中,不使用临时文件
{
try
{
Image image = Image.FromFile(this.textBox2.Text);
Bitmap smallImage = new Bitmap(image.Width/4, image.Height/4);
Graphics g = Graphics.FromImage(smallImage);
g.DrawImage(image, new Rectangle(new Point(0, 0), smallImage.Size), new Rectangle(new Point(0, 0), image.Size), GraphicsUnit.Pixel);
image.Dispose(); OleDbConnection conn = new OleDbConnection(Conn);
OleDbCommand cmd = null;
cmd = conn.CreateCommand();
conn.Open();
cmd.CommandText = "insert into 图像库(图像) values(?)";
MemoryStream ms = new MemoryStream();
smallImage.Save(ms, ImageFormat.Png);
ms.Seek(0, SeekOrigin.Begin);
BinaryReader sr = new BinaryReader(ms);
byte[] bts = sr.ReadBytes((int) ms.Length);
cmd.Parameters.Add("@图像", OleDbType.VarBinary).Value = bts;
cmd.ExecuteNonQuery();
g.Dispose();
ms.Close();
sr.Close();
smallImage.Dispose();
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}private void button3_Click(object sender, EventArgs e)//将数据库中图片显示到panel上,不使用临时文件
{
try
{
OleDbConnection conn = new OleDbConnection(Conn);
OleDbDataAdapter dapter = new OleDbDataAdapter("select 图像 from 图像库", Conn);
DataSet ds = new DataSet("图像库");
dapter.Fill(ds); int height = 0;
Graphics g = this.panel1.CreateGraphics(); foreach(DataRow dr in ds.Tables[0].Rows)
{
byte[] bts = (byte[])dr["图像"];
MemoryStream ms = new MemoryStream();
BinaryWriter wr = new BinaryWriter(ms);
wr.Write(bts,0,bts.Length);
ms.Flush();
ms.Seek(0,SeekOrigin.Begin);
Image image = Image.FromStream(ms);
g .DrawImage(image,new Rectangle(new Point(20,height),image.Size),new Rectangle(new Point(0,0),image.Size),GraphicsUnit.Pixel);
height+= image.Height;
ms.Close();
wr.Close();
image.Dispose();
}
g.Dispose();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}}