- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章实例1--图片上传与显示
第6章 实例1--图片上传与显示 本章要点 数据库的新建 数据库的连接 数据的查询与数据记录的增加 图片的处理 网站信息系统一般流程 分析系统的功能 设计系统的网站结构 设计数据库 网站整体框架/风格确定 实现各个功能(设计各个网页) 界面设计 后台代码实现 效果:新建相册,上传相片到相册 6.1 新建数据库 1.新建PERSONALO数据库 2.新建数据库中表(直接执行SQL语句) 3.数据表分析 6.2 设置数据库连接字符串 用任一数据控件连接数据库,保存连接字符串在WEB.CONFIG文件中即可. connectionStrings add name=Personal connectionString=Data Source=MAIXP\MAIDB; Initial Catalog=PERSONAL;Integrated Security=True providerName=System.Data.SqlClient/ /connectionStrings 6.3 读取数据库连接字符串 string connstring = ConfigurationManager.ConnectionStrings[Personal].ConnectionString; ConfigurationManager是专门用于管理WEB.CONFIG配置文件的类. 6.4 上传图片到数据库 代码6-4 创建新相册 使用的是带参数的SqlCommand对象.试改用使用存储过程. 代码6-5 上传相片 数据库中的image字段,要用二进制字节数组未填入. Stream imgDataStream = FileUpload1.PostedFile.InputStream; int imgDataLen = FileUpload1.PostedFile.ContentLength; byte[] BytesOriginal=new byte[imgDataLen]; int n=imgDataStream.Read(BytesOriginal,0,imgDataLen); //将图片数据imgDataStream读取出来,写入到二进制字节数组BytesOriginal中. ResizeImageFile分析 private static Byte[] ResizeImageFile(byte[] imageFile,int targetSize) { System.Drawing.Image oldImage = System.Drawing.Image.FromStream(new MemoryStream(imageFile));//从二进制字节数组中创建一个Image类型图片. Size newSize = CalculateDimension(oldImage.Size,targetSize);//重新计算大小 Bitmap newImage = new Bitmap(newSize.Width,newSize.Height,System.Drawing.Imaging.PixelFormat.Format24bppRgb);//以新大小创建一个Bitmap类型图片 Graphics canvas = Graphics.FromImage(newImage);//创建新图片的画布 …设置画布绘图的属性 canvas.DrawImage(oldImage,new Rectangle(new Point(0,0),newSize));//用oldImage在新图片上画图(复制) MemoryStream m = new MemoryStream(); newImage.Save(m, ImageFormat.Jpeg);//转换为JPG格式 return m.GetBuffer();//返回二进制字节数组 } 6.5批量上传图片到数据库中 string directory = TextBox3.Text; DirectoryInfo d = new DirectoryInfo(directory); foreach (FileInfo f in d.GetFiles(*.jpg)) { byte[] buffer = new byte[f.OpenRead().Length]; f.OpenRead().Read(buffer, 0, (int)f.OpenRead().Length); AddPhoto(1, f.Name, buffer); } La
文档评论(0)