Library tutorials & articles

Uploading Images to a Database

Introduction

Uploading images to a Sql Server database is extremely easy using ASP.NET and C#. This article will show you how to upload Images (or any Binary Data) to a SQL Server database using ASP.NET and C#. The next part in this series, Retrieving Images from a Database, will show you how extract images from a database.

Building the Database Table

We start out by building our database table. Our image table is going to have a few columns describing the image data, plus the image itself. Here is the sql required to build our table in SQL Server or MSDE.

CREATE TABLE [dbo].[image] (
    [img_pk] [int] IDENTITY (1, 1) NOT NULL ,
    [img_name] [varchar] (50) NULL ,
    [img_data] [image] NULL ,
    [img_contenttype] [varchar] (50) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

ALTER TABLE [dbo].[image] WITH NOCHECK ADD
CONSTRAINT [PK_image] PRIMARY KEY NONCLUSTERED
(
    [img_pk]
) ON [PRIMARY] GO

I'm a great fan of having a single column primary key, and making that key an Identity column, in our example, that column is img_pk. The next column is img_name, which is used to store a friendly name of our image, for example "Mom and Apple Pie". img_data is actually our image data column, and is where we will be storing our binary image data. img_contenttype will be used to record the content-type of the image, for example "image/gif" or "image/jpeg" so we will know what content-type we need to output back to the client, in our case the browser.

Comments

  1. 20 Mar 2009 at 14:52
    Hi can i upload images using open dialog in asp.net by selecting multiple images at a time by single button click as like we have open file dialog in windows appllication
  2. 15 Jun 2006 at 13:52

    This may sound weird but I think I'm the only one not having perfect success with this.

    I'm getting a System.NullReferenceException: Object reference not set to an instance of an object.
    on the line


    Stream imgStream = UploadFile.PostedFile.InputStream;

    [NullReferenceException: Object reference not set to an instance of an object.]
    DBImages.UploadImage.BtnUpload_Click(Object sender, EventArgs e) in c:\Inetpub\wwwroot\official-certify\Media\SubmitJon.aspx.cs:70
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
    System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
    System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33

    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102










    I'm not sure why I'm getting this error. I copied the code verbatum and then added references for my other fields that I'm pulling in.

    I have no idea what the stack trace is all about, like I understand stacks, but the way these are formatted makes no sense to me, although here's what's in it maybe you guys will know.

    ((my button is exactly the same just named BtnUpload as opposed to UploadBtn.))



    If anyone could help it would be greatly appreciated. It's been driving me nuts I've run into a bunch of other errors that I've fixed, mostly missing a ";" but I've taken care of them all, this is the only one I haven't figured out yet (well unless there's more after this one is fixed)

    Thanks in advance for the help








  3. 02 Nov 2005 at 09:48

    The easiest way to upload and resize an image to the internet and automatically create thumbnails is I-Load.
    I-Load is a FREE ASP.NET web control with numerous benefits and features.
    You can download I-Load (it's FREE!) and view an online demo here:


    http://www.radactive.com/en/Products/ILoad/Overview.aspx

  4. 03 Sep 2005 at 08:39
    Hi,   Whts the benifit of uploading images in database server when i can place images on web server in my directory and accesss them. Reply soon.
  5. 02 Aug 2005 at 11:06
    The explanatory text says "The first interesting point about our webform, is the attribute "enctype". Enctype tells the browser and server that we will be uploading some type of binary data" but I don't see enctype in the code samples. Have I missed something?

    Les
  6. 08 Jul 2005 at 16:13

    Better control of file updates.  On file server, anybody can update files without letting anyone know about it.  If you store a file inside SQL database, it will show who last updated files, inform users when it expires, requiring updates and so on.  I administer 230 manual documents that shows original creator, date of implementation, maintainer and updated date.  Very useful and uniform in updates and maintenance.


  7. 18 May 2005 at 14:57

    i have been able to implement this and i now upload all sorts of documents including images into my sql server database. i now need to retrieve the document in the original format (.doc, .xls, .jpg, etc). pls, i do i achieve that?

  8. 28 Dec 2004 at 05:32

    Hello,


    I need some more idea on this topic. What is benifit to store data into SQL server (means into BLOB chartype in SQL). Why can not we just store file on to PC and just add link name into SQL.


    Please can anybody give me this ans.


    Thanks

  9. 20 Sep 2003 at 22:19

    Ok,


    Im sorta new to ASP.Net and Ive got the image upload to blob working ...


    But for this to be moreso practical, it would be nice to see the ability to upload into another field, the thumbnail automatically generated from the blob data. (or when it gets uploaded).


    Can someone help or point me in the right direction?!?!


    Im desperate

  10. 01 Jan 1999 at 00:00

    This thread is for discussions of Uploading Images to a Database.

Leave a comment

Sign in or Join us (it's free).

Dave Wanta

Related podcasts

  • 2008 Year in Review

    CodeCast Episode 9: 2008 Year in ReviewOur special 2008 year in review episode with hosts Ken Levy and Markus Egger, joined by special guest co-host Rick Strahl of West Wind Technologies. Topics · Visual Studio (@ 2:37) · Languages (@ 6:28) · SQL Server (@ 10:15) · ...

Events coming up

  • Mar 15

    DevWeek 2010

    London, United Kingdom

    DevWeek is Europe’s leading independent conference for software developers, database professionals and IT architects, and features expert speakers on a wide range of topics, including .NET 4.0, Silverlight 3, WCF 4, Visual Studio 2010, REST, Windows Workflow 4, Thread Synchronization, ASP.NET 4.0, SQL Server 2008 R2, LINQ, Unit Testing, CLR & C# 4.0, .NET Patterns, WPF 4, F#, Windows Azure, ADO.NET, Entity Framework, Debugging, T-SQL Tips & Tricks, and more.

We'd love to hear what you think! Submit ideas or give us feedback