如何在ASP.Net 中把图片存入数据库

作者&投稿:丹逄 (若有异议请与网页底部的电邮联系)
~    一 介绍

  可能有很多的时候 我们急需把图片存入到数据库当中 在一些应用程序中 我们可能有一些敏感的资料 由于存储在文件系统(file system)中的东西 将很容易被某些用户盗取 所以这些数据不能存放在文件系统中

  在这篇文章中 我们将讨论怎样把图片存入到Sql 当中

  在这篇文章中我们可以学到以下几个方面的知识

   插入图片的必要条件

   使用流对象

   查找准备上传的图片的大小和类型

   .怎么使用InputStream方法?

  在我们开始上传之前 有两件重要的事我们需要做

  (1)Form 标记的 enctype 属性应该设置成 enctype= multipart/form data

  (2) 需要一个<input type=file>表单来使用户选择他们要上传的文件 同时我们需要导入 System IO名称空间来处理流对象

  把以上三点应用到aspx页面 同时我们需要对SqlServer做以下的准备

  (1)需要至少含有一个图片类型的字段的表

  (2)如果我们还有另外一个变字符类型的字段来存储图片类型 那样会更好一些

  现在 我们准备了一个Sql表(包含了一个image数据类型的字段) 还有<input type=file>标记 当然我们还得准备Submit按钮 以便用户在选择了图片以后提交 在这个按钮的Onclick事件里 我们需要读取选取图片的内容 然后把它存入到表里 那我们先来看看这个Onclick事件

提交按钮的Onclick事件的代码

Dim intImageSize As Int Dim strImageType As StringDim ImageStream As Stream

Gets the Size of the ImageintImageSize = PersonImage PostedFile ContentLength

Gets the Image TypestrImageType = PersonImage PostedFile ContentType

Reads the ImageImageStream = PersonImage PostedFile InputStream

Dim ImageContent(intImageSize) As ByteDim intStatus As IntegerintStatus = ImageStream Read(ImageContent intImageSize)

Create Instance of Connection and Command ObjectDim myConnection As New SqlConnection(ConfigurationSettings AppSettings( ConnectionString ))Dim myCommand As New SqlCommand( sp_person_isp myConnection)

Mark the Command as a SPROCmyCommand CommandType = CommandType StoredProcedure

Add Parameters to SPROCDim prmPersonImage As New SqlParameter( @PersonImage SqlDbType Image)prmPersonImage Value = ImageContentmyCommand Parameters Add(prmPersonImage)

Dim prmPersonImageType As New SqlParameter( @PersonImageType SqlDbType VarChar )prmPersonImageType Value = strImageTypemyCommand Parameters Add(prmPersonImageType)

TrymyConnection Open()myCommand ExecuteNonQuery()myConnection Close()Response Write( New person successfully added! )Catch SQLexc As SqlExceptionResponse Write( Insert Failed Error Details are: & SQLexc ToString())End Try

  这是怎么工作的呢?  PersonImage是HTMLInputFile控件的对象 首先需要获得图片的大小 可以使用下面的代码实现

intImageSize = PersonImage PostedFile ContentLength

然后返回图片的类型使用ContenType属性 最后 也是最重要的事就是取得Image Stream 这可以用以下代码实现

ImageStream = PersonImage PostedFile InputStream

  我们需要一个字节型数组来存储image 内容 读取整个图片可以使用Stream对象的Read方法来实现 Read(in byte[] buffer int offset int count)方法有三个参数 【关于Read方法的详细内容可以参看 Net FrameWorkSDK】 他们是

  buffer 字节数组 此方法返回时 该缓冲区包含指定的字符数组 该数组的 offset 和 (offset + count) 之间的值由从当前源中读取的字节替换

offset buffer 中的从零开始的字节偏移量 从此处开始存储从当前流中读取的数据

count 要从当前流中最多读取的字节数

这个Read方法用以下代码实现 intStatus = ImageStream Read(ImageContent intImageSize)  现在 我们已经读取了整个图片的内容 下一步 我们要把这些内容存入到sql 表 我们将使用存储过程来完成插入图片类型和图片内容到sql 表 如果你浏览了上面的代码 你将会发现我们使用了sqldbtype image的数据类型(datatype) Ok了 完成了这些 我们也就成功的把图片存入到SqlServer中了 下面是我们编写的aspx页面

   二 结论

lishixinzhi/Article/program/net/201311/15186




asp.net调试时自动关闭
没办法,是安装的时候系统失误造成的问题.你或者重新装下IE看看,或者看看有没有什么程序改了你的IE.比如病毒,插件.等等.重新装系统很快的啊.10分钟.GHOST盘装,推荐电脑公司版

.net分层构架的设计文档
1、添加ASP.NET Web Application项目,命名为UI,新建Web Form类型文件User.aspx(含User.aspx.cs) 2、添加ClassLibrary项目,命名为BLL,新建Class类型文件UserBLL.cs 3、添加ClassLibrary项目,命名为DAL,新建Class类型文件UserDAL.cs。添加SQLHelper引用。(这个是微软的数据访问类,也可以不用,直接编写所有的数据访问代码。

ASP实时生成HTML的问题
要即时生成很简单,但问题在于你这样做的意义何在?每人访问一次就生成一次,如果同时多人访问的时候即表示生成多次,严重涉嫌浪费服务器资源```如果你真需要这样做的话可以加155155598帮你解决,只是你的想法太不好理解了```而且我相信很少人会这么做 ...

ASP做简单的BBS如何统计总帖子数?
> 把上面的代码可以放在conn.asp里随时调用 用下面这个调用.<%call mytable("你的贴子表名")%>

7939病毒 互连网一片哗然?解决办法何在??
1.打开windows任务管理器,察看是否有可疑的进程(可以根据杀毒软件的报告或者在网上搜索相关信息来判定)在运行,如果有把它结束。注意在system32目录下的Rundll32.exe本身不是病毒,有可能一个dll文件在运行,他才可能是病毒或恶意程序之类的东西。由于windows任务管理器不能显示进程的路径,因此建议使用杀毒...

杜甫九日
衰老多病。尾联以佳节思亲作结,遥怜弟妹,寄托漂零寥落和伤时忧国之感。参考资料:http:\/\/xz7.2000y.net\/mb\/1\/ReadNews.asp?NewsID=506726

asp 网页 居中
2013-12-16 ASP网页内有好多DIV 如何让网页适应屏幕水平居中 2014-05-23 用ASP.NET做的网站,为什么页面总是不能居中的 3 2012-05-10 关于asp.net的网页居中问题 2011-01-19 ASP.NET制作网页时,怎么样使页面居中? 5 2015-02-10 asp代码上下左右居中代码? 2012-12-08 ASP.NET网页无法居中问题 1 ...

计算机行业有哪些职位
网站程序员:ASP、、PHP网络:网络管理员网络工程师:思科、华为软件:C++、java、还有网络营销策划销售问题三:求解:计算机专业的就业岗位有哪些? 关天计算机,我们往往会想到IT.而IT让人想到是程序员,程序开发,软件开发.而这一类是非常广的,比较复杂.但常规是可以做网站优化,SEO,网管,网站设计,建设.(这些你要会的软件...

跟雪山飞狐的音调一样都有什么歌曲
弱さを隠してるけど その瞳の奥 うずくまる君が 本当の心なら 思って泣いて 一人で不安で 何で 痛いの 持ってんだ 仆にそっと预けてよ すぐじゃ无理と思うのならば 少しずつで良い 翼のない仆らきっと 飞べないと决めつけてるだけ 声の限り君を呼ぶよ 迷わないように ふ...

狂人日记简介
《狂人日记》简介 《狂人日记》写于一九一八年四月。它是鲁迅创作的第一个白话小说,也是现代中国的新文学的第一篇杰出作品。《狂人日记》的主题,据鲁迅说,是“意在暴露家族制度和礼教的弊害”。“弊害”何在?乃在“吃人”。鲁迅以其长期对半封建半殖民地的旧中国的深刻观察,发出了振聋发聩的呐喊:封建主义吃人!

君山区13027952218: 如何在ASP.Net 中把图片存入数据库?
枝从大补: 图片直接存入数据库, 得先把图片上传,转换成二进制. 然后存入数据库的 数据库中需建一个字段,类型为BLOB 具体的方法,你可以参考此贴 http://www.wewill.cn/n17196c8.aspx 二进制好像不支持查询. 具体我没有试过. 不过,你可以建一个字段,来保存图片的关键字. 通过查询关键字来查询图片. 一般来说,不建议把图片存入数据库 如果图片软大,运行速度会很慢. 而且非常耗费数据库空间. 建议将图片路径保存到数据库, 然后调用路径,显示图片.

君山区13027952218: 在ASP.NET中如何向数据库中插入图片 -
枝从大补: 这 个你要简单的是吧 就是 把图片另存到一个路径下的指定文件夹下即可,ASP.NET代码如下: string file = FileUpload1.FileName;//获取文件名 //实例化一个随机对象 Random rd = new Random(); string time= DateTime.Now.Ticks.ToString();// ...

君山区13027952218: asp.net中 怎么在本地文件中添加图片 -
枝从大补: 用这个控件 后台代码:if(FileUpload1.FileName != "") if (!Directory.Exists(Server.MapPath("E/UploadFiles/")))//存放文件的本地文件夹 { Directory.CreateDirectory(Server.MapPath("E/UploadFiles/")); } FileUpload1.SaveAs(Server.MapPath("E/UploadFiles/" + FileUpload1.FileName));//保存文件 大体就这样了

君山区13027952218: asp.net里怎么将图片存到数据库里面 -
枝从大补: 一般数据库不放图片,只放图片地址 如果一定要的话,把图片文件变成二进制格式的字符串,存储进数据库 读取的时候再把二进制字符串转成图片文件

君山区13027952218: asp 中的图片怎么写入 -
枝从大补: 没太明白你的意思,是不是这样?<%response write "<img alt=""这是一个图片"" src=""/baidu.jpg"">"%>

君山区13027952218: 在ASP.NET 2.0中怎样把图片写入数据库
枝从大补: 有两种方式: 1.如果数据库中图片字段是image类型(二进制数组)的,则先把图片转化成二进制数组//将图片转化成二进制格式存储 Stream stream=FuUploadImage1.PostedFile.InputStream; byte[] photo = new byte[length]; stream.Read(photo, 0, length); stream.Close(); 再将photo写入数据库 你的问题解决了么

君山区13027952218: 在ASP.NET中如何上传图片到数据库中,然后从数据库中将图片调出 -
枝从大补: 第一次上传图片时,默认的给程序目录下创建一个上传图片的文件夹,当操作者点击保存的时候,数据库中只需要记录图片路径+图片名称,图片直接提交到文件夹下进行保存.读取的时候从数据库读取图片路径,然后在该路径下查找图片名称相同的文件,进行显示就可以了. 页面上显示图片直接放一个image控件就可以了,上传放一个upload控件,点击上传的时候,对image进行绑定,页面加载的时候,也对image进行绑定,这样就可以显示图片了. 这个就是答案的思路,不过代码还是应该自己先写,这样印象会比较深刻,不会的可以再继续提问

君山区13027952218: asp.net中如何将图片复制到指定文件夹
枝从大补:if (FileUpload1.FileName.Length != 0) { string name = FileUpload1.PostedFile.FileName; // 客户端文件路径 FileInfo file = new FileInfo(name); string fileName = file.Name; string webFilePath = Server.MapPath("~/Images/Travel" + fileName); if (...

君山区13027952218: asp.net中怎么用FileUpload控件将图片保存到本地文件夹中,假如保存到E盘的新建文件夹里面. -
枝从大补: FileUpload1.SaveAs("E:\\"+图片名称); 注意是否有访问文件夹的权限.

君山区13027952218: 如何在ASP中将图片存到数据库 -
枝从大补: 建议图片不直接存放到数据库,把图片存放到一定文件夹如uppic.在数据库中建一字段存放该图片url 建另一字段存放说明.用ID做主键来约束URL和说明

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网