`
yesjavame
  • 浏览: 656163 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

关于ASP.NET中图片上传到MSSQL数据库以及读取的方法

阅读更多
这篇文章非常非常简单,只是一个基本代码的笔记而已。所以,已经知道方法的同学可以出去了。

地球人都知道我们为什么要把文件上传到数据库里,所以原因我也懒得说。

预备工作:
在数据库方面,我们需要有一个字段,类型为Image,用来放图片的内容。

第一步,上传:
我还是按照我最常用的Info-Persister方式。Info类中这个字段对应的属性类型为byte[]。然后,在上传组件的PostFile中,从它的InputStream读出字节数组,就OK了。

1intlen=this.File1.PostedFile.ContentLength;
2byte[]buf=newbyte[len];
3
4Streami=this.File1.PostedFile.InputStream;
5i.Read(buf,0,buf.Length);
6ti.content=buf;//赋给Info的一个属性
7i.Close();

得到了Info就可以按常规使用Persister的create来写入数据库了,也没有什么不一样的。
因为我比较偷懒,用的是 object[] 作为存储过程的参数,而不是setParameter方法。

第二步,显示:
图片的显示也很简单,在Persister中注意一下:

1SqlDataReaderreader=SqlHelper.ExecuteReader(conStr,"p_hello_get",objs);
2
3if(reader.Read())
4{
5ti.name=reader.GetString(1);
6ti.content=(byte[])reader[2];//最简单快速的方法就是这样
7}
8reader.Close();

当然,如果你不喜欢强制转型,还可以这样:

1ti.content=reader.GetSqlBinary(2).Value;

有了byte[]的内容,要显示也比较简单,在Page_Load()方法中加两句话即可:

Response.ContentType="image/jpeg";
Response.BinaryWrite(ti.content);

这样就可以输出图像了,但是有一点要注意的是,如果想对图像做一点调整(比如旋转,转换格式之类的),或者想知道图片的格式(是jpg 还是 gif),你也可以这样:

1//同样,声明输出不是HTML而是image
2Response.ContentType="image/jpeg";
3
4//从byte[]得到一个image对象
5System.Drawing.Imagebmap=Bitmap.FromStream(newMemoryStream(ti.content));
6//操作一下这个图像
7bmap.RotateFlip(RotateFlipType.Rotate180FlipY);
8
9//输出到页面上
10bmap.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
11
12//释放image
13bmap.Dispose();
14

当然,如何在asp中动态显示图像,我就不多说了。无非就是让<img src=指向一个aspx文件,然后在这个aspx文件中设置它的输出不是HTML而是image即可。

分享到:
评论

相关推荐

    asp.net知识库

    Asp.net 利用OleDb的GetOLEDBSchemaTable方法得到数据库架构信息 用于 Visual Studio .Net 的 IBM DB2 开发外接程序 第2章 并发操作的一致性问题 (2) Using sqlite with .NET Visual Studio 2005 中的新 DataSet ...

    asp.net数据库连接

    一个简单的小页面 仅仅实现从一个web页面对数据库实现插入和读取的操作 是学习asp.net 连接数据库的好材料 &lt;br&gt;数据库在App_Data文件夹 只要附加就可以了

    ASP.NET MVC1.0 BBS Demo教学版源码

    这是一个ASP.NET MVC 1.0 的一个Demo教学程序 语言:C# 开发环境:Visual Studion 2008 SP1 数据库:MSSQL 2005 前台功能:实现发贴、回复、注册、登录 (大部份功能使用jQuery 实现Ajax 操作,也有MVC自带的Ajax...

    ASP.NET MVC1.0 BBS

    ASP.NET MVC1.0 BBS 简易Demo教学版源码 这是一个ASP.NET MVC 1.0 的一个简易Demo教学程序 版本:ASP.NET MVC 1.0 框架:.NET Framework 3.5 SP1 语言:C# 开发环境:Visual Studion 2008 SP1 数据库:MSSQL ...

    ASP.NET树形菜单Tree数据库版

    内容索引:.NET源码,Ajax相关,树形菜单,Tree 一个支持复选框、树形菜单Tree,数据读取自MSSQL2000数据库,最多支持二级,没有尝试可以使用三级。树形菜单设计风格比较不错,所用的相关资源都已打包,部分菜单展开图...

    ASP.NET MVC LINQ BBS源码

    ASP.NET MVC1.0 BBS 教学版源码 框架:.NET Framework 3.5 SP1 语言:C# 开发环境:Visual Studion 2008 SP1 数据库:MSSQL 2005 前台功能:实现发贴、回复、注册、登录 (大部份功能使用jQuery 实现Ajax 操作,...

    ADO_ASP网站数据库查询分页显示

    指出了ADO和ASP技术在网站的创建和数据库的操作中的作用,如分页和查询(来自维普)

    asp.net连接数据库读取数据示例分享

    代码如下: ”MSSQL” connectionString=”Data Source=localhost;Initial Catalog=test;User ID=sa;password providerName=”System.Data.SqlClient”/&gt; 前台aspx: 代码如下:&lt;&#37;@ Page Language=”C#” ...

    远想WEB版进销存2.0

    1、安装系统支持为 win2003+sp2 iis 6.0 asp.net 2.0 mssql2000+3p4 2、建站独站的站点并选择ASP.net 2.0支持, 3、给系统用户administrators组添加Authenticated Users为超管 4、给所建站的站点添加asp.net和...

    ASP网上购物系统旗舰版

    6)帮助信息中包含“送货”、“配送”的栏目将被直接读取到商品页面送货方式 11、 流量统计系统 1)总体数据:总访问量、在线人数、今日访问量、昨日访问量、今年访问量 本月访问量、统计天数、平均日访量、预计...

    远想WEB版进销存 v2.0

    1、安装系统支持为 win2003+sp2 iis 6.0 asp.net 2.0 mssql2000+3p4 2、建站独站的站点并选择ASP.net 2.0支持, 3、给系统用户administrators组添加Authenticated Users为超管 4、给所建站的站点添加asp.net和...

    中诺企业网站CMS系统 v2.0.rar

    1、使用ftp软件上传Upload文件内的... 注:1)网站空间需支持ASP.NET3.5及以上版本  2)数据库需要MSSQL2005及以上版本  3)上传时如果最好将Upload内的文件压缩后再上传,然后在线解压,以节省上传时间

    亚讯 setup3.2.zip

    7.配置安装web服务器,用虚拟目录向导创建目录,允许权限设置下面三个打钩 =读取,运行脚本(如asp) 执行(如ISAPI)应用程序 主目录: D:\Smartbilling\SmartBillingWeb 8.配置Web.config文件 mssql数据库ip 用户名和...

    乐彼多用户商城系统LBMall(.net) v3.1.1.rar

    乐彼多用户商城系统,采用ASP.NET分层技术和AJAX技术,运营于高速稳定的微软.NET MSSQL 2005平台;完全具备搭建超大型网络购物多用户网上商城的整体技术框架和应用层次LBMall 秉承乐彼软件优秀品质,后台人性化...

    sql server sqldmo_x86_x64(C#数据库备份还原很好用的dll)

    SQLDMO.dll是个好东西,ASP.NET利用它可以实现在线备份、还原数据库等各种功能。近日有客户要求为其在后台添加一个管理数据库的功能。于是就出现了这篇文章。 由于客户的数据库和WEB服务不再同一台服务器,当我们...

    动易SiteWeaver内容管理系统WAP2.0适配程序 V1.0.rar

    如果为MSSQL数据库,你可以将wap.quickwap.net域名绑定子目录“WAP”,这样你可以通过wap.quickwap.net访问。  至此,已经完成动易内容管理系统的WAP适配程序的安装工作,既然是WAP/WEB同步适配,那么自然WAP是不...

    动易内容管理系统WAP2.0适配程序

    如果为MSSQL数据库,你可以将wap.quickwap.net域名绑定子目录“WAP”,这样你可以通过wap.quickwap.net访问。  至此,已经完成动易内容管理系统的WAP适配程序的安装工作,既然是WAP/WEB同步适配,那么自然WAP是不...

    pageadminweb企业网站源码090324

    为达到最佳效果,推荐使用九网互联的ASP.net空间,支持ASP.net版本1.1和2.0在线切换、在线脚本映射、ASP.net具体错误信息在线查看。PageAdmin系统运行环境:空间要求:IIs+Framework2.0或以上版本数据库:Access或...

    pageadmin企业网站管理系统 V2.1

    为达到最佳效果,推荐使用九网互联的ASP.net空间,支持ASP.net版本1.1和2.0在线切换、在线脚本映射、ASP.net具体错误信息在线查看。PageAdmin系统运行环境:空间要求:IIs+Framework2.0或以上版本数据库:Access或...

    pageadmin企业网站管理系统 v2.1 bulid 090610

    为达到最佳效果,推荐使用九网互联的ASP.net空间,支持ASP.net版本1.1和2.0在线切换、在线脚本映射、ASP.net具体错误信息在线查看。PageAdmin系统运行环境:空间要求:IIs+Framework2.0或以上版本数据库:Access或...

Global site tag (gtag.js) - Google Analytics