魔扣论坛

魔扣源码论坛业务
查看: 1012|回复: 6

在ASP.NET中把图片保存到SQL SERVER数据库

[复制链接]
  • TA的每日心情

    2016-1-20 20:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    147

    主题

    2

    回帖

    166

    积分

    初级魔扣

    Rank: 2

    魔扣币
    4
    贡献
    4
    威望
    13
    发表于 2016-12-28 15:09:52 | 显示全部楼层 |阅读模式
    魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    翻译:吕绍伟
    在很多情况下,我们需要把图片保存到数据库中。在某些应用程序中,存在一些敏感信息不能被存储到文件系统中,因为存储在文件系统上的任何图片都很容易被用户非法获得。
    本文将讨论在ASP.NET中怎样把图片保存到SQL SERVER数据库中。
    在本文中我们将了解到以下几方面的内容:
    l 上载图片文件的要求
    l 使用Strem对象
    l 获得上载图片大小和类型
    l 如何使用InputStream方法?
    上载图片文件的要求
    在开始上载前我们需要作两件重要的事情
    #Form标记的enctype属性需要被设置为如下形式:
    enctype="multipart/form-data"
    #提供一个让用户选择图片文件的Html控件:
    #还要引用System.IO命名空间来处理Strem对象
    上述的三项都要应用到aspx页中。在SQL SERVER中还有以下的一些要求:
    #一个至少有一个字段类型为Image的表
    #另外有一个用来存储图片类型的Varchar类型的字段就更好了
    那么,我们有了一个有Image字段类型的数据表和一个(HTML文件控件)。我们还需要一个提交按钮,当用户选择好图片后可以点击它。在按钮的OnClick事件中我们要获得图片文件的内容并最终把它插入到数据表中。让我们来看看按钮的OnClick事件,它读取图片并把图片插入到数据表中。
    提交按钮的OnClick事件代码
    它是如何工作的?
    对象PersonImage 是HTMLInputFile 控件。首先我们要获得被插入图片的大小,通过如下方法实现:
    intImageSize = PersonImage.PostedFile.ContentLength
    接着要通过ContenType属性获得图片类型。最后最重要的是要获得图片文件流,通过如下方法实现:
    ImageStream = PersonImage.PostedFile.InputStream
    我们有一个byte数组ImageContent,准备用来保存图片内容。整个图片通过Stream对象的Read方法读取,这个方法有三个参数,即:
    #被复制的图片内容的目标位置
    #读的开始位置
    #需要被读的子节数
    读声明如下:
    intStatus = ImageStream.Read(ImageContent, 0, intImageSize)
    现在,我们读取了整个图片内容。接着我们需要把图片内容插入SQL数据表中,我们将用用一个存储过程把图片类型和图片插入SQL数据表。如果你看过上面的代码清单,你就知道我们把数据类型设置为SqlDbType.Image.就这样,我们成功地把图片保存到了SQL SERVER数据库。
    例子的输出样例
    图:将图片保存到sql server 数据库
    测试下面的代码
    代码下载
    总结
    这样,我们完成了怎样把图片保存到数据库的讨论。我们也准备好了使用上面的下载部分提供的例子和存储过程。如果你想知道怎样从SQL SERVER中读取图片,请参阅我的这篇文章Retrieving Images from SqlServer in ASP .NET
    译者注:由于受到HTTP传输协议的限制,在不同的环境下能够上载文件的大小不一。对于要上传大文件的Web应用程序来说,这并不是一个完美的解决方案,只是为我们提供了一种相对较好的方法。我曾经用这种方法在局域网中成功上载30M的文件,但是在系统性能较低的另外一个本机系统中,最多只能上载5M的数据。另外需要读者注意的是,上载大文件的时候要适当修改machine.config和web.config文件,只要你打开这些文件就可以知道怎样适当的修改。初次翻译,还望大家多多指正。

    该用户从未签到

    1

    主题

    254

    回帖

    510

    积分

    高级魔扣

    Rank: 4

    魔扣币
    255
    贡献
    255
    威望
    0
    发表于 2017-1-22 10:11:50 | 显示全部楼层
    人世间的每一分温暖和友情,朋友间的每一个牵挂和祝福,都是心灵与心灵的交融!我珍惜我生命中每一个与我有缘的朋友!魔扣源码论坛让我们在交流中理解,在理解中前行!

    该用户从未签到

    3

    主题

    251

    回帖

    505

    积分

    高级魔扣

    Rank: 4

    魔扣币
    251
    贡献
    251
    威望
    0
    发表于 2017-4-23 15:19:48 | 显示全部楼层
    发发呆,回回帖,工作结束~

    该用户从未签到

    1

    主题

    246

    回帖

    493

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    246
    贡献
    246
    威望
    0
    发表于 2017-9-4 17:34:41 | 显示全部楼层
    我也来顶一下..

    该用户从未签到

    3

    主题

    246

    回帖

    495

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    246
    贡献
    246
    威望
    0
    发表于 2018-1-31 07:11:25 | 显示全部楼层
    山海可以阻隔彼此,却阻隔不了我的思念;距离可以拉开你我,却拉不开真挚的情谊,时间可以淡忘过去,却忘不了魔扣源码论坛永远的朋友。时光,带着美丽行走,那些过往,永远铭记。岁月为我沉淀下来的,是带着浓郁花香的美好。

    该用户从未签到

    0

    主题

    254

    回帖

    508

    积分

    高级魔扣

    Rank: 4

    魔扣币
    254
    贡献
    254
    威望
    0
    发表于 2018-8-12 19:03:41 | 显示全部楼层
    很多我们以为一辈子都不会忘记的事情,就在我们念念不忘的日子里,魔扣源码论坛被我们遗忘了。

    该用户从未签到

    1

    主题

    251

    回帖

    503

    积分

    高级魔扣

    Rank: 4

    魔扣币
    251
    贡献
    251
    威望
    0
    发表于 2019-1-27 16:41:17 | 显示全部楼层
    感恩无私的分享与奉献 魔扣源码论坛是我心中的神!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表