在 SQL Server 當中有一款資料類型號作 Image , 除了可以儲存圖檔外它還可以儲存大型的二進位資料檔, 對這一個欄位大部分的人是聽過但是不知影按怎來用, 今日的文章就要來討論如何將圖檔存入去資料庫
準備工作
為了降低這篇文章的篇幅及複雜度, 咱決定借用 Upload 元件來替我們完成檔案上傳的工作, 所要使用的是 Dundas 所提供免錢的上傳元件, 請到下底的網址下載 Dundas Upload 元件並安裝
http://www.dundas.com/
創造資料表
在這個例咱要用到 SQL 內建的 Pubs 資料庫來作測試, 請打開 QA 然後執行下底的創造資料表指令, 所要建立的資料表中一個欄位是紀錄檔案的 Content-Type, 另一個則是儲存圖檔
Use Pubs
Create Table ImgData
(
ImgID Int Identity Not Null Primary Key,
ContentType VarChar(20),
FileData Image
)
Html 表單部分
現在來看看 Html 表單的部分, 因為是用做檔案上傳因此用 enctype="multipart/form-data" , 不過要注意的是一但使用了 form-data 後表單資料的取得也就不能再用 Request.Form, 因為這不是這篇文章的重點所以在這就不多做解釋, 請將下底的碼存成 insert.htm
程式碼
擱來看麥 ASP 的部分, 請將下底的碼存成 insert.ASP
<%
Response.Buffer = True
ConnStr = "Provider=SQLOLEDB;" _
& "Data Source=你的電腦名稱;" _
& "Initial Catalog=Pubs;" _
& "User Id=sa;" _
& "PassWord=你的密碼"
'建立 oUpload 上傳物件
Set oUpload = Server.CreateObject("Dundas.Upload.2")
'在使用 oUpload 集合 (Collection) 前, 要先呼叫 Save 或 SaveToMemory 方法
oUpload.SaveToMemory
Set oRs = Server.CreateObject("Adodb.Recordset")
oRs.Open "ImgData", ConnStr, 2, 3
oRs.AddNew
'呼叫 oUpload 物件的 ContentType, Binary 屬性,