在 sql server 當中有一款資料?型號作 image , 除了可以儲存圖檔外它還可以儲存大型的二進位資料檔, 對這一個欄位大部分的人是聽過但是不知影按怎?碛? 今日的文章就要?碛懻撊绾螌d檔存入去資料庫
準備工作
為了降低這篇文章的篇幅及複雜度, 咱決定借用 upload 元件?硖嫖覀兺瓿蓹n案上傳的工作, 所要使用的是 dundas 所提供免錢的上傳元件, 請到下底的網址下載 dundas upload 元件?k安裝
http://www.dundas.com/
創造資料表
在這個例咱要用到 sql 內建的 pubs 資料庫?碜鳒y試, 請打開 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
<html>
<head>
<title>資料庫存入圖檔</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" action="insert.asp">
<table border="0" align="center">
<tr>
<td>file :</td>
<td><input type="file" name="file" size="40"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value=" 進行上傳 "></td>
</tr>
</table>
</form>
</body>
</html>
程式碼
擱?砜贷?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 屬性, 已取得我們要的資料
ors("contenttype").value = oupload.files(0).contenttype
ors("filedata").value = oupload.files(0).binary
ors.update
ors.close
set ors = nothing
%>
頂高的程式假設你只上傳一個檔案, 所以使用 oupload.files(0), 如果你一次上傳一個以上的檔案, 你可以將程式小改為
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器