这几天一直在忙,怎么把图片保存到数据库中,在前台的图片切换中自动从数据库中检索最新的图片显示,按照这个过程,我首先讲一下我这几天的所得,因为也是刚学,又从网上查资料,也是找自己能看懂的来运用的,不难有与别人不一样的地方。
其实,在数据库中是不能直接保存图片类型的。编程人员一般采取两种方法来保存图片:
1、用来保存图片在服务器的虚拟路径;
2、直接保存图片转换后的二进制数据流;
在实际开发中,这两种都可以,但是各有各的优缺点。
第一种方法,存取路径,当然比较简单,我们用Image控件的话,只要读取其路径,给了Image控件的ImageURL就可以了,但是它的缺点也就在于这个路径。如果本地的图片路径变换了或者什么的,在其他机子上就无法显示了,因此这种方法必须是文件夹一定。也给维护带来一定的麻烦。
第二种方法,存取二进制数据流,这里存的就是图片的另一种格式,从某种角度就是图片本身,所以在取出来显示的话,只要图片正确,就能正确显示。
这里我会用例子分别给大家演示怎么王数据库里存取图片。
我们先来看第一个例子吧,这里用到FileUpload控件。很简单,大家拖过来使用就是了。
////获取文件名
string name = this.FileUpload1.FileName;
//获取文件类型
string type = name.Substring(name.LastIndexOf(".") + 1);
//获取文件的路径
string ipath = Server.MapPath("image") + "\\" + name;
//设置文件保存的路径
string wpath = "image\\" + name;
string query1 = "insert into image(path) values(@path)";
if (type == "jpg" || type == "gif" || type == "bmp" || type == "png")
{
FileUpload1.SaveAs(ipath); //服务器保存路径
SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=***;database=za");
SqlCommand cm = new SqlCommand(query1);