在ASP.net中保存/取出图片入/从SQL数据库

一、把图片存入数据库中

用到以下几个方面的知识:
1. 使用流对象
2. 查找准备上传的图片的大小和类型
3.怎么使用InputStream方法

插入图片的必要条件
1.#Form 标记的 enctype 属性应该设置成 enctype="multipart/form-data"
2.# 需要一个<input type=file>表单来使用户选择他们要上传的文件,同时我们需要导入 System.IO名称空间来处理流对象
对SqlServer做以下的准备
1.# 需要至少含有一个图片类型的字段的表
2.# 如果我们还有另外一个变字符类型的字段来存储图片类型,那样会更好一些。

窗体控件
1.插入图片用到的是System.Web.UI.HtmlControls.HtmlInputFile控件,我们在webform中放入这个控件,取名为“imgInput”
2.同时再放入一个确认上传按钮“Button1”

程序代码
AddImg,用于返回要上传的图片内容

1Private Function AddImg()Function AddImg(ByVal InputImg As System.Web.UI.HtmlControls.HtmlInputFile, ByVal ImgType As String, ByVal MaxSize As Int64) As Byte()
 2'传入一个htmlinputfile控件,一个上传图片格式和一个上传图片最大值,返回图片的内容,既要写入数据库中的内容,你也可以同时写入图片类型
 3        Dim intImageSize As Int64
 4        Dim strImageType As String
 5        Dim ImageStream As Stream
 6        ' Gets the Image Type
 7   strImageType=InputImg.PostedFile.ContentType
 8        If strImageType <> ImgType Then
 9            Response.Write("<script>alert('图片类型为""')</script>") 'jgp类型为"image/pjpeg"
10            Exit Function
11        End If
12        ' Gets the Size of the Image
13        intImageSize = InputImg.PostedFile.ContentLength
14        If intImageSize > MaxSize Then
15            Response.Write("<script>alert('图片不得大于K')</script>")
16            Exit Function
17        End If
18        ' Reads the Image
19        ImageStream = InputImg.PostedFile.InputStream
20        Dim ImageContent(intImageSize) As Byte
21        Dim intStatus As Integer
22        intStatus = ImageStream.Read(ImageContent, 0, intImageSize)
23        Return ImageContent
24    End Function
示例调用

Dim imageContent() As Byte
       imageContent = AddImg(fileImg, "image/pjpeg", 512000)'上传图片类型为jpg,最大不超过500K

插入数据库

我想这部分就不用写了吧,你可以用任何方式(推荐使用存储过程),将imageContent插入到数据库中类型为image的字段就行了。

二、把图片从数据库中读出

这部分比较简单:

假设img变量是你从数据库中取出的图片内容
那么直接使用
Response.BinaryWrite(img)
就可以将图片输出到页面上了

三:总结

将图片存放在数据库中其实是起到了图片保护的作用,这样就算别人浏览你的机器也看不到你的图片,也可以用来保护重要的图片资料。

(0)

相关推荐

  • Asp.net把图片存入数据库和读取图片的方法

    网上关于ASP.NET上传图片到数据库的资料非常多,常用的如下:存储图片类型数据有以下几种方式:1.将图片转换为二进制数组(byte[]) 复制代码 代码如下: byte[] fileData = this.FileUpload1.FileBytes; 2. 根据路径将文件转换为2进制数组 复制代码 代码如下: 代码 public byte[] returnbyte(string strpath){ // 以二进制方式读文件    FileStream fsMyfile = new FileSt

  • ASP.NET下上传图片到数据库,并且读出图片的代码(详细版)

    首先在SQL Server中建立一个图片存储的数库表,ImageData Column为图象二进制数据储存字段,ImageContentType Column为图象文件类型记录字段,ImageDescription Column为储蓄图 象文件说明字段,ImageSize Column为储存图象文件长度字段,结构如下: 复制代码 代码如下: CREATE TABLE [dbo].[ImageStore] ( [ImageID] [int] IDENTITY (1, 1) NOT NULL , [

  • asp.net mvc 从数据库中读取图片的实现代码

    首先是创建一个类,继承于ActionResult,记住要引用System.Web.Mvc命名空间,如下: 复制代码 代码如下: public class ImageResult : ActionResult { public ImageFormat ContentType { get; set; } public Image image { get; set; } public string SourceName { get; set; } public ImageResult(string _

  • asp.net 将图片上传到mysql数据库的方法

    这是页面上的按钮单击事件 复制代码 代码如下: protected void Button1_Click(object sender, EventArgs e) { string tid = Utils.getRandom(32); Stream mystream = this.FileUpload1.PostedFile.InputStream; int length = this.FileUpload1.PostedFile.ContentLength; byte[] pic = new b

  • asp.net中上传图片文件实现防伪图片水印并写入数据库

    复制代码 代码如下: // 涉及命名空间 using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.Web; using Syst

  • asp.net上传图片保存到数据库的代码

    数据库:保存图片的数据格式 图象二进制数据储存字段前台: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UploadWork.aspx.cs" Inherits="meishuguan.UploadWork" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr

  • ASP.Net 图片存入数据库的实现代码

    在这篇文章中,我们将讨论怎样把图片存入到Sql2000当中. 在这篇文章中我们可以学到以下几个方面的知识: 1. 插入图片的必要条件 2. 使用流对象 3. 查找准备上传的图片的大小和类型 4.怎么使用InputStream方法? 插入图片的必要条件 在我们开始上传之前,有两件重要的事我们需要做: #Form 标记的 enctype 属性应该设置成 enctype="multipart/form-data" # 需要一个<input type=file>表单来使用户选择他们

  • 在ASP.net中保存/取出图片入/从SQL数据库

    一.把图片存入数据库中 用到以下几个方面的知识:1. 使用流对象2. 查找准备上传的图片的大小和类型3.怎么使用InputStream方法 插入图片的必要条件1.#Form 标记的 enctype 属性应该设置成 enctype="multipart/form-data"2.# 需要一个<input type=file>表单来使用户选择他们要上传的文件,同时我们需要导入 System.IO名称空间来处理流对象 对SqlServer做以下的准备1.# 需要至少含有一个图片类型

  • ASP替换、保存远程图片实现代码

    ASP通过函数来实现替换.保存远程图片,完成自动采集图片.提取图片的功能,函数中自动判断重复图片,智能分析链接路径,并转成成相对的图片地址保存在你指定的网站目录中,我们可将此函数用在后台的编辑器中,当你复制了含有图片的内容后,本代码会自动帮你上传图片.同时本代码也是采集程序中的重要处理函数,函数代码如下: Function ReplaceSaveRemoteFile(ConStr,strInstallDir,strChannelDir,SaveTf,TistUrl) If ConStr="$Fa

  • Asp.net中把Excel数据存储至SQL Server中的具体实现方法

    ExcelWrapper 复制代码 代码如下: /// <summary>        /// 查询EXCEL电子表格添加到DATASET        /// </summary>        /// <param name="filenameurl">文件路径</param>        /// <param name="table">dataset中的表名(并不是要和数据库中的表一样)</

  • 一段脚本实现自动备份并保存最近几天的SQL数据库

    复制代码 代码如下: DECLARE @filename VARCHAR(255) DECLARE @date DATETIME SELECT @date=GETDATE() SELECT @filename = 'G:\存放位置\数据库名称-'+CAST(DATEPART(yyyy,@date) as varchar)+'-'+CAST(DATEPART(mm,@date) as varchar)+'-'+CAST(DATEPART(dd,@date) as varchar)+'.bak' B

  • SQL Server LocalDB 在 ASP.NET中的应用介绍

    我相信世界总是会向更好的方向发展,今年的维也纳新年音乐会没有往年的明星级指挥,但是它通过回归奥地利的本质,以更传统的聚合法则,让过往的艺术家们一代代创造的灿烂,在新的指挥手中,迸发出更深邃的音节.在此,也祝大家新年快乐.如同交响乐一样,构造软件系统不一定必须某个强大的明星驱动,我们站在历代ADO.NET的肩膀上,更好地回归到SQL Server的核心开发:SQL Server LocalDB 在 ASP.NET中的应用. 使用SQL Server LocalDB的优势: 快速部署完整的SQL S

  • asp.net中利用ashx实现图片防盗链代码

    GET /Img.ashx?img=svn_work.gif HTTP/1.1 Accept: */* Referer: http://www.svnhost.cn/ Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727

  • asp.net实现递归方法取出菜单并显示在DropDownList中(分栏形式)

    本文实例讲述了asp.net实现递归方法取出菜单并显示在DropDownList中的方法.分享给大家供大家参考,具体如下: 树形栏目展示以DropDownList的形式显示出来. protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataTable table = bllSite.GetChannelNames(CurrentUser.ParkID); BindChannelType(table,

  • ASP.NET中图片显示方法实例

    本文实例讲述了ASP.NET中图片的显示方法.分享给大家供大家参考.具体如下: genimage.ashx: 复制代码 代码如下: <%@ WebHandler Language="C#" Class="netpix.ImageGenerator" %> genimage.ashx.cs: // Copyright (C) 2003 by Greg Ennis // (mailto:greg@ennis.net) // // The contents o

  • ASP保存远程图片到本地 同时取得第一张图片并创建缩略图的代码

    采集中 或者 在线添加文章中 都可以用到此功能 俺自己在baidu上搜索的保存远程图片到本地的代码 感觉比较难用点 而且没有现成的比较全的代码 俺也看不懂 俺从 SNA新闻采集系统 For 3.62 (程序制作:ansir)里提取了点函数 用下 比较简单好用 以下是函数 程序代码  复制代码 代码如下: <% '================================================== '函数名:CheckDir2 '作 用:检查文件夹是否存在 '参 数:FolderP

  • Android中布局保存成图片实例代码

    一.前言 有一个朋友问做过截屏的小功能没,自己没有做过.但是想了一下,实现的过程.实现截屏就是为了截取咱们应用中的部分布局,然后实现将保存在本地,或将其分享,或将其通过第三方的平台分享出去.自己可能是受了截屏这两个字的影响,想当然的去梳理自己的实现思路. 1:截屏,调用系统的截屏功能区实现截屏. 2:对图片进行处理:截屏是截取的手机的全屏,因为我们是需要截取我们的应用的某一部分,所以我们需要去通过剪切裁剪,去裁剪出自己想要保留的一部分(实质也就是保存布局). 3:后续也许还要处理系统截屏功能本身

随机推荐