用ASP.NET创建和保存图片到数据库

                          By Max Cappellari MCSD  译 涟漪勇

下载源码

当我们开发电子商务类型的网站,我们一定会遇将每一个产品的产品图片(大图片和所略图)存储到数据库的问题,每一个产品的同一个图片上传两种大小不同的尺寸似乎是件不可能的事情,我建了一个方程来实现:创建一个特殊尺寸的所略图和存储两个图片(原始的和所略的)到SQL数据库。另外我建了一个Class用于取出图片和显示图片在网页上。

The SQL Database

SQL数据库

首先,让我讲讲一些关于产品数据库的信息。图片可以存储在用Image类型的字段的数据库中。另外,我们还需要一个varchar 的字段去存储图片的类型(GIF, JPG, BMP等等),这是很重要的对于显示图片从数据库中找到相应的数据。我建了一个Product_Image 表,Product_Image 表涉及到商品表(Product)的ProdID ,但是这一点并不是很重要的,下面是Product_Image 表的数据结构。

用ASP.NET创建和保存图片到数据库CREATE TABLE [Product_image] ( 
用ASP.NET创建和保存图片到数据库    
[imageID] [int] IDENTITY (11NOT NULL ,
用ASP.NET创建和保存图片到数据库    
[ProdID] [int] NOT NULL , 
用ASP.NET创建和保存图片到数据库    
[LG_img_name] [varchar] (50), 
用ASP.NET创建和保存图片到数据库    
[LG_img_data] [image] NULL , 
用ASP.NET创建和保存图片到数据库    
[LG_img_contenttype] [varchar] (50) ,
用ASP.NET创建和保存图片到数据库    
[SM_img_name][varchar] (50), 
用ASP.NET创建和保存图片到数据库    
[SM_img_data] [image] NULL , 
用ASP.NET创建和保存图片到数据库    
[SM_img_contenttype] [varchar] (50), ) 
用ASP.NET创建和保存图片到数据库

 

 

你可以看到我存储两个图片为每一个产品(LG_img and SM_img),每一个图片有三的字段(name, data, and contenttype).我还建了一个存储过程,insert_Product_image,去完成插入图片的数据库的功能。

用ASP.NET创建和保存图片到数据库CREATE PROCEDURE [insert_Product_image] ( 
用ASP.NET创建和保存图片到数据库@ProdID 
[int]
用ASP.NET创建和保存图片到数据库@img_name 
[varchar](50),
用ASP.NET创建和保存图片到数据库@img_data 
[image]
用ASP.NET创建和保存图片到数据库@img_contenttype 
[varchar](50),
用ASP.NET创建和保存图片到数据库@img_name2 
[varchar](50), 
用ASP.NET创建和保存图片到数据库@img_data2 
[image]
用ASP.NET创建和保存图片到数据库@img_contenttype2 
[varchar](50) )
用ASP.NET创建和保存图片到数据库
AS 
用ASP.NET创建和保存图片到数据库
begin transaction 
用ASP.NET创建和保存图片到数据库  
delete from Product_image where ProdID = @ProdID 
用ASP.NET创建和保存图片到数据库  
INSERT INTO [Product_image] ( 
用ASP.NET创建和保存图片到数据库  
[ProdID]
用ASP.NET创建和保存图片到数据库  
[LG_img_name],
用ASP.NET创建和保存图片到数据库  
[LG_img_data]
用ASP.NET创建和保存图片到数据库  
[LG_img_contenttype],
用ASP.NET创建和保存图片到数据库  
[SM_img_name]
用ASP.NET创建和保存图片到数据库  
[SM_img_data]
用ASP.NET创建和保存图片到数据库  
[SM_img_contenttype] )
用ASP.NET创建和保存图片到数据库
VALUES ( 
用ASP.NET创建和保存图片到数据库  @ProdID, 
用ASP.NET创建和保存图片到数据库  @img_name, 
用ASP.NET创建和保存图片到数据库  @img_data, 
用ASP.NET创建和保存图片到数据库  @img_contenttype,
用ASP.NET创建和保存图片到数据库  @img_name2, 
用ASP.NET创建和保存图片到数据库  @img_data2, 
用ASP.NET创建和保存图片到数据库  @img_contenttype2)
用ASP.NET创建和保存图片到数据库
commit transaction 
用ASP.NET创建和保存图片到数据库

 

 

The Input Form — SaveImage.aspx

输入窗体— SaveImage.aspx

我设计了一个简单的输入窗体去得到图片和产品ID由用户输入,文件的名字是SaveImage.aspx:


 

请注意enctype="multipart/form-data代码在<form>标记内的,这是必须的当一个binary数据(图片)传送到服务器端。

 

The Code Behind — SaveImage.aspx.vb

后置代码— SaveImage.aspx.vb

下面的后置代码SaveImage.aspx功能是返回数据从窗体并且存储到数据库,有三个方程在这里SaveImageToDB, createThumnail, 和NewThumbSize:

用ASP.NET创建和保存图片到数据库Imports System.Web.UI
用ASP.NET创建和保存图片到数据库
Imports System.Web.UI.WebControls
用ASP.NET创建和保存图片到数据库
Imports System.Web.UI.HtmlControls
用ASP.NET创建和保存图片到数据库
Imports System.IO
用ASP.NET创建和保存图片到数据库
Imports System.Drawing
用ASP.NET创建和保存图片到数据库
Imports System.Drawing.Imaging
用ASP.NET创建和保存图片到数据库

 

SaveImageToDB调用存储过程insert_Product_image去完成插入图片到数据库,createThumnail创建一个新的基于宽Width and 高Height 传递给方程. 在我的例子中,我用一个尺寸为145x145象素的图片作为所略图的大小,方程NewThumbSize 将基于原始的图片的比例进行调整新的图片并且返回适当的尺寸。

如果有任何问题可以发送到作者信箱:maxcappellari@yahoo.com.
或者到涟漪勇的信箱:rippleyong@hotmail.com

 

相关文章:

  • 2022-12-23
  • 2021-12-12
  • 2022-12-23
  • 2021-09-19
  • 2022-12-23
  • 2022-01-30
  • 2021-12-14
猜你喜欢
  • 2021-08-20
  • 2022-12-23
  • 2022-01-26
  • 2021-10-13
  • 2022-01-11
  • 2022-03-04
  • 2021-11-29
相关资源
相似解决方案