小弟最近在忙一个小程序,涉及到图片的存储和读取问题,不知如何下手,特来请教各位!问题描述如下:
在一个.aspx页面上放置一个Image控件,允许用户把自己的图片通过Image控件存储进数据库(SQL SERVER 2000 ),在查看的时候并通过Image控件显示出来。还请各位多多帮忙,小弟感激不尽!
最好能够附上源代码,谢谢!
在一个.aspx页面上放置一个Image控件,允许用户把自己的图片通过Image控件存储进数据库(SQL SERVER 2000 ),在查看的时候并通过Image控件显示出来。还请各位多多帮忙,小弟感激不尽!
最好能够附上源代码,谢谢!
解决方案 »
- 如何在static方法中调用非静态方法?在不使用实例化的情况下。
- 关于一个Student的两种建模,大家看看在实际开中一般会选择哪个?
- 我想在一个web 的image 控件上改变的显示图片 100分。在线急等。
- ?????????这样的 ,我们公司的一些项目都是用cs而我是bs的目前除了做了两个公司网站以外一直没有什么活,而cs那个程序员一直都忙不过来,
- 关于对话框中取消不起作用的问题,在线等
- listbox里面的item的value值是不是不能相同呀?
- 客户端添加DropDownList
- Asp.net的客户端确认
- !!哪位兄台在做.net中的Remoting技术的项目,希望共同交流一下!!!!
- 高手进来帮忙看看...
- 100分求个算法..根据数据库的一张表建了个树型关系组..现在想实现删除遇到困难了
- 一个简单的问题,请高手来相告一下菜鸟
if(myFile.ContentLength != 0)
{
try
{
System.Web.HttpPostedFile myFile = this.Request.Files[0];
// string tmpFileName = myFile.FileName;
// string myFileName = tmpFileName.Substring(tmpFileName.LastIndexOf("."));
// string myFileMimeType = myFile.ContentType();
// myFile.SaveAs(this.Server.MapPath("../" + myFileName)); //读取到数组里面
System.IO.Stream mystream = myFile.InputStream;
byte[] Buffer = new byte[myFile.ContentLength];
mystream.Read(Buffer,0,myFile.ContentLength); //打开数据库
OracleConnection cn = new OracleConnection(ConfigurationSettings.AppSettings["sysDSN"]);
cn.Open(); //用参数方式写入数据库
OracleCommand myComm = cn.CreateCommand();
string sql = "insert into tmp(tmp_id,tmp_blob) values(tmp_seq.nextval,:tmp_blob)";
myComm.CommandText = sql;
myComm.Parameters.Add(":tmp_blob",OracleType.Blob,Buffer.Length).Value = Buffer;
myComm.ExecuteNonQuery();
}
catch
{
//此处可加错误显示
}
finally
{
cn.Close();
}
}
在页面中,放一个Image控件,在后台指定它的链接地址如下:
----------------------------------------------------------------------
//为方便,写一个固定ID号tmp_id=103
this.Image1.ImageUrl = "showimg.aspx?tmp_id=103" ;
下面是显示图片的页面showimg.aspx后台代码,该页面不需要放任何东西.
--------------------------------------------------------------------
//创建数据库连接
OracleConnection myConnection = new OracleConnection(ConfigurationSettings.AppSettings["sysDSN"]);
myConnection.Open();//打开数据库
OracleCommand myCommand = myConnection.CreateCommand();
string sql = "select tmp_blob from tmp where tmp_id = 103";
myCommand.CommandText = sql;
OracleDataReader myRead = myCommand.ExecuteReader();//开始读取
myRead.Read();
//这个方法更直接
Byte[] Buffer = (Byte[])myRead[0];
//OracleLob myLob = myRead.GetOracleLob(0);
//长度是long,转为int32
//int myLength = Convert.ToInt32(myLob.Length);
//Byte[] Buffer = new byte[myLength];
//myLob.Read(Buffer,0,myLength);//输出
this.Response.Clear();
//输出mime类型,根据上传的文件取到的mimetype,是什么我忘记了,自己写上,不过不写也没有关系.
this.Response.ContentType = "";
this.Response.BinaryWrite(Buffer);
this.Response.End();
bw.Write(outbyte, 0, (int)retval - 1);
修改为:
bw.Write(outbyte, 0, (int)retval);
or
www.cnblogs.com/yistudio