Samuel Learning

  • 联系
  •  
  • 管理

文章分类(203)

  • 01 ASP/HTML(6)
  • 02 Script/CSS(16)
  • 03 C/C++
  • 04 XML(4)
  • 05 微软编程(26)
  • 06 J2EE(60)
  • 09 Linux(14)
  • 10 Database(27)
  • 11 报表打印
  • 12 打包安装(1)
  • 13 模式重构(2)
  • 14 系统架构
  • 15 敏捷开发(11)
  • 16 案例分析(30)
  • 17 Workflow(1)
  • 18 配置管理(1)
  • 19 项目管理
  • 20 英语(4)

新闻分类(52)

  • CXF学习
  • Hibernate学习(1)
  • iBatis学习(16)
  • Struts1学习(1)
  • Struts2学习(34)

.NET资源

  • adxmenu
  • C# Open Source
  • DNN Directory
  • M2Land
  • Windows Form FAQ
  • 中国DNN
  • 中国DNN联盟

Ajax

  • DoJo
  • GWT
  • JQuery
  • jquery autocomplete
  • jquery flexgrid
  • JQuery Form
  • jquery masked input
  • JQuery UI
  • jquery validation
  • Jquery 图表
  • jquery报表
  • jquery插件集合
  • Qooxdoo
  • Tibco GI
  • YUI
  • YUI-EXT
  • ZeroKode

Java开源

  • ABLE
  • Agile Tao
  • Ajax4JSF
  • Alfresco
  • AppFuse
  • Compiere
  • Equinox
  • Findbugs
  • Geronimo
  • Grails
  • Harmony
  • Hibernate论坛
  • JAG
  • Java开源大全
  • Java视线论坛
  • jBPM工作流
  • JSFTutorials
  • Nereide ERP
  • Ofbiz ERP
  • Opentaps ERP
  • operamasks
  • Petstore
  • Prototype.js
  • RIFE
  • Runa
  • SpringSide
  • Struts Menu
  • Sun Glassfish
  • Trails
  • YUI4JSF
  • 满江红

Mobile

  • Sencha

WEB资源

  • DHTML中心
  • DHTML参考手册
  • DHTML文档
  • EclipsePlugin
  • Firebug
  • GRO Clinux
  • jMaki
  • JSTL文档
  • LoadIcon
  • Openlaszlo
  • Struts Menu 展示
  • Web Test Tools
  • WebCtrs
  • Webdeveloper
  • 中国RIA开发者论坛

Workflow

  • E-Workflow
  • JBPM
  • OpenWFE
  • OSWorkflow
  • WFMC
  • Workflow Research

其他连接

  • confach
  • CPP
  • ejay
  • Giovanni
  • 丹佛
  • 交大e-learning
  • 交大研究生院
  • 可恶的猫
  • 天天@blog
  • 我的相册
  • 阿飞

大牛人

  • 32篇JBPM
  • David.Turing
  • HongSoft@业务集成
  • Joel
  • Koen Aers
  • Martinfowler
  • Raible Matt
  • Raible Wiki
  • Scott W.Ambler
  • Tom Baeyens
  • Uncle Bob
  • 一个世界在等待
  • 子在川上曰
  • 小布老师
  • 小明
  • 差沙
  • 徐昊
  • 江南白衣
  • 汪博士
  • 汪小金
  • 银狐999

开源软件

  • 2Bizbox ERP
  • CompiereCRM&ERP
  • EGW
  • Vtiger CRM
  • webERP

敏捷

  • Canoo
  • Cruisecontrol
  • DBUnit
  • EL4Ant
  • Extreme Programming
  • Fit
  • Fitnesse
  • JFrog
  • Liquibase
  • Maven
  • MockObjects
  • Selenium
  • Squish
  • xpairtise
  • XPlanner
  • XProgramming
  • 敏捷联盟

数据库

  • Oracle 中国
  • Oracle-ERP
  • Oracle在线社区

未归类

  • Aquarius Orm Studio
  • mambo建站系统
  • Oracle产品下载
  • 远程同步管理工具Capivara

经典框架

  • Apache Shale
  • formdef-struts
  • FreeMarker 主页
  • JBoss Seam
  • JSF 中心
  • JSF 入门应用
  • JSF中国
  • MyFaces官方
  • Spring 社区
  • Spring专业网站
  • Spring中文论坛
  • Spring参考手册
  • Spring官方网站
  • strecks-struts
  • Struts1
  • Struts2
  • Struts-layout
  • StrutsWiKi
  • Tapestry WIKI
  • Tapestry 官方
  • Tapestry4开发指南
  • Tapestry中文文档
  • Webwork2文档
  • Wicket

网络教程

  • Laliluna
  • RoseIndia
  • Sang Shin
  • Visualbuilder

著名站点

  • Buildix
  • Dev2Dev
  • IBM dev中国
  • InfoQ
  • ITPub
  • Java Eye
  • Java Research
  • JavaRead
  • JavaWorldTW
  • Matrix
  • PHP100
  • PHPX
  • SpringSideWiKi
  • TheServerSide
  • TWPHP
  • 中国工作流论坛

项目管理

  • 管理人网

最新评论

View Post

ASP.Net处理图片在数据库的存取

Part I:创建数据库

代码:

CREATE TABLE imgProcess(
pic_id 
INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
pic_title 
VARCHAR(50) NULL,
pic_type 
VARCHAR(50) NULL,
pic_content 
IMAGE NULL
)

 

Part II:图片存入数据库

代码(.aspx):

 

<form id="Form1" method="post" encType="multipart/form-data"       runat="server">
      
<asp:TextBox id="txtTitle" runat="server"></asp:TextBox><br>
      
<INPUT id="myImageFile" type="file" name="File1" runat="server">
      
<asp:button id="btnUpload" runat="server" Text="Upload"></asp:button><br>
      
<br>
      
<asp:HyperLink id="HyperLink1" runat="server"     NavigateUrl="ReadAllImagesFromDB.aspx">ReadAllImagesPage</asp:HyperLink>
</form>


代码(.vb)

Private Sub btnUpload_Click()Sub btnUpload_Click()Sub btnUpload_Click()Sub btnUpload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpload.Click
    
Dim intImageSize As Int32
    
Dim strImageType As String
    
Dim imageStream As Stream
    intImageSize 
= myImageFile.PostedFile.ContentLength

    strImageType 
= myImageFile.PostedFile.ContentType
    imageStream 
= myImageFile.PostedFile.InputStream
    
If intImageSize <= 0 Then
      Response.Write(
"Picture can't be null")
      
Return
    
End If
    
Dim imageContent(intImageSize) As Byte
    
Dim intStatus As Int32
    intStatus 
= imageStream.Read(imageContent, 0, intImageSize)
    
Dim dbAccess As New CommonDB
    
Try
      dbAccess.OpenConnection()
      dbAccess.Command.CommandText 
= "INSERT INTO imgProcess(pic_title,pic_type,pic_content) VALUES (@imgtitle,@imgtype,@imgdata )"
      dbAccess.Command.Parameters.Add(
"@imgtitle", SqlDbType.VarChar, 50).Value = txtTitle.Text.Trim
      dbAccess.Command.Parameters.Add(
"@imgtype", SqlDbType.VarChar, 50).Value = strImageType
      dbAccess.Command.Parameters.Add(
"@imgdata", SqlDbType.Image).Value = imageContent
      dbAccess.Command.ExecuteNonQuery()
      Response.Write(
"Success!")
    
Catch ex As Exception
      Response.Write(dbAccess.ErrorMessage)
    
Finally
      dbAccess.CloseConnection()
    
End Try
End Sub

 

Part III 图片取出数据库,显示在页面

代码(show.aspx)

<form id="Form1" method="post" runat="server">
      
<asp:DataGrid id="Grid1" runat="server" AutoGenerateColumns="False">
        
<Columns>
          
<asp:BoundColumn DataField="pic_title" HeaderText="Title"></asp:BoundColumn>
          
<asp:TemplateColumn HeaderText="Photo">
            
<ItemTemplate>
              
<img src='<%# "GetImg.ashx?ID=" & DataBinder.Eval(Container.DataItem,"pic_id")%>' />
            
</ItemTemplate>
          
</asp:TemplateColumn>
          
<asp:TemplateColumn HeaderText="Photo2">
            
<ItemTemplate>
              
<img src='<%# "GetImg.aspx?ID=" & DataBinder.Eval(Container.DataItem,"pic_id")%>' />
            
</ItemTemplate>
          
</asp:TemplateColumn>
        
</Columns>
      
</asp:DataGrid>
    
</form>

代码(show.vb)

Private Sub Page_Load()Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
If Not IsPostBack Then
      ReBind()
    
End If
  
End Sub


  
Private Sub ReBind()Sub ReBind()
    
Dim dbAccess As New CommonDB
    
Try
      dbAccess.OpenConnection()
      dbAccess.
Command.CommandText = "SELECT pic_id,pic_title FROM imgProcess "
      Grid1.DataSource = dbAccess.Command.ExecuteReader
      Grid1.DataBind()
    
Catch ex As Exception
      Response.
Write(ex.ToString)
    
Finally
      dbAccess.CloseConnection()
    
End Try
  
End Sub

 

代码(getImg.ashx)

<%@ WebHandler Language="vb" Class="ASPNETPP.GetImg" %>

代码(getImg.ashx.vb)

Imports System
Imports System.Web
Imports System.Data
Imports System.Data.SqlClient
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.IO

Public Class GetImgClass GetImg : Implements IHttpHandler
  
Public Sub ProcessRequest()Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
    
Dim strId As String = Convert.ToString(context.Request.Item("id"))
    
If strId Is Nothing Then
      
Return
    
End If
    
Dim stream As New MemoryStream
    
Dim bm As Bitmap
    
Dim img As Image
    
Dim dbAccess As New CommonDB
    
Try
      dbAccess.OpenConnection()
      dbAccess.
Command.CommandText = "SELECT pic_content FROM imgProcess WHERE pic_id=" & strId
      
Dim blob() As Byte = dbAccess.Command.ExecuteScalar()
      stream.
Write(blob, 0, blob.Length)
      bm 
= New Bitmap(stream)
      
Dim width As Int16 = 200
      
Dim height As Int16 = bm.Height / bm.Height * width
      img 
= bm.GetThumbnailImage(width, height, Nothing, IntPtr.Zero)
      img.Save(context.Response.OutputStream, ImageFormat.Jpeg)
    
Catch ex As Exception
      context.Response.
Write(ex.ToString)
    
Finally
      dbAccess.CloseConnection()
      
If Not (img Is Nothing) Then
        img.Dispose()
      
End If
      
If Not (bm Is Nothing) Then
        bm.Dispose()
      
End If
      stream.Close()
    
End Try
  
End Sub


  
Public ReadOnly Property IsReuseable()Property IsReuseable() As Boolean Implements IHttpHandler.IsReusable
    
Get
      
Return True
    
End Get
  
End Property

End Class

代码(getImg.aspx)

<form id="Form1" method="post" runat="server">
</form>

代码(getImg.aspx.vb)

Private Sub Page_Load()Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
Dim dbAccess As New CommonDB
    
Try
      dbAccess.OpenConnection()
      dbAccess.
Command.CommandText = "SELECT * FROM imgProcess WHERE pic_id = " & Request.QueryString("id").Trim
      dbAccess.Reader 
= dbAccess.Command.ExecuteReader()
      
Do While (dbAccess.Reader.Read())
        Response.ContentType 
= dbAccess.Reader.Item("pic_type")
        Response.BinaryWrite(dbAccess.Reader.Item(
"pic_content"))
      
Loop
    
Catch ex As Exception
      Response.
Write(dbAccess.ErrorMessage)
    
Finally
      dbAccess.CloseConnection()
  
End Try
End Sub

posted on 2005-08-04 12:22 MingIsMe 阅读(308) 评论(0)  编辑  收藏 所属分类: 01 ASP/HTML

 
Powered by:
BlogJava
Copyright © MingIsMe