卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

純ASP代碼上傳圖片和存儲圖片

站長百科(www.zzbaike.com ) 站長自己的百科全書用純ASP代碼上傳圖片和存儲??? 出處:站長百科 原文地址:http://www.zzbaike.com/wiki 本電子書整理自

站長百科(www.zzbaike.com ) 站長自己的百科全書

用純ASP代碼上傳圖片和存儲

?

?

? 出處:站長百科 原文地址:http://www.zzbaike.com/wiki 本電子書整理自站長百科wiki 詞條,查看最新內(nèi)容請訪問網(wǎng)站

HostEase擁有中文網(wǎng)站(http://cn.hostease.com)的美國主機商 中國訪問最快的美國主機 中文網(wǎng)站輕松選購 支付寶付款 購買快捷 中文客戶服務溝通更方便,輕松省錢請看優(yōu)惠碼http://www.idcspy.com/top/hostease/

推薦內(nèi)容: HostEase主機中文網(wǎng)站 | HostEase優(yōu)惠碼

關于如何上傳文件到服務器恐怕是遇見最多的問題了,尤其是上傳圖片,比如你想要在自己的社區(qū)里面實現(xiàn)類似網(wǎng)易虛擬社區(qū)提供的“每日一星”的功能,就要提供給網(wǎng)友上傳照片的功能。上傳圖片文件到服務器可以使用各種免費的文件上傳組件,使用起來功能雖然很強大,但是由于很多情況下,我們只能使用免費的支持ASP的空間或者租用別人的虛擬空間,對于第一種情況,我們根本就沒有可能來使用文件上傳組件;至于第二種情況,我們也要付出不少的“銀子”才可以。除非你擁有自己的虛擬主機,你就可以隨便的在服務器上面安裝自己所需要的組件,這種情況對于大多數(shù)人來說是可望而不可及的。那我們就沒有辦法了嗎?呵呵,答案是肯定的(當然是肯定的了,要不然我也沒法寫出這篇文章啊)。下面就讓我們一起來使用純ASP代碼來實現(xiàn)圖片的上傳以及保存到數(shù)據(jù)庫的功能(順便也實現(xiàn)顯示數(shù)據(jù)庫中的圖片到網(wǎng)頁上的功能)。

首先我們先來熟悉一下將要使用的對象方法。我們用來獲取上一個頁面?zhèn)鬟f過來的數(shù)據(jù)一般是使用Request 對象。同樣的,我們也可以使用Request 對象來獲取上傳上來的文件數(shù)據(jù),使用的方法是Request.BinaryRead()。而我們要從數(shù)據(jù)庫中讀出來圖片的數(shù)據(jù)顯示到網(wǎng)頁上面要用到的方法是:

?

?

? 出處:站長百科 原文地址:http://www.zzbaike.com/wiki 本電子書整理自站長百科wiki 詞條,查看最新內(nèi)容請訪問網(wǎng)站

,

站長百科(www.zzbaike.com ) 站長自己的百科全書

Request.BinaryWrite()。在我們得到了圖片的數(shù)據(jù),要保存到數(shù)據(jù)庫中的時候,不可以直接使用Insert 語句對數(shù)據(jù)庫進行操作,而是要使用ADO 的AppendChunk 方法,同樣的,讀出數(shù)據(jù)庫中的圖片數(shù)據(jù),要使用GetChunk 方法。各個方法的具體語法如下:

Request.BinaryRead 語法:

variant = Request.BinaryRead(count)

參數(shù)

variant

返回值保存著從客戶端讀取到數(shù)據(jù)。

count

指明要從客戶端讀取的數(shù)據(jù)量大小,這個值小于或者等于使用方法

Request.TotalBytes 得到的數(shù)據(jù)量。

Request.BinaryWrite 語法:

Request.BinaryWrite data

參數(shù)

data

要寫入到客戶端瀏覽器中的數(shù)據(jù)包。

Request.TotalBytes 語法:

variant = Request.TotalBytes

參數(shù)

variant

返回從客戶端讀取到數(shù)據(jù)量的字節(jié)數(shù)。

AppendChunk 語法

將數(shù)據(jù)追加到大型文本、二進制數(shù)據(jù) Field 或 Parameter 對?

object.AppendChunk Data

參數(shù)

object Field 或 Parameter 對象

Data 變體型,包含追加到對象中的數(shù)據(jù)。

?

?

? 出處:站長百科 原文地址:http://www.zzbaike.com/wiki 本電子書整理自站長百科wiki 詞條,查看最新內(nèi)容請訪問網(wǎng)站

,

站長百科(www.zzbaike.com ) 站長自己的百科全書

說明

使用 Field 或 Parameter 對象的 AppendChunk 方法可將長二進制或字符數(shù)據(jù)填寫到對象中。在系統(tǒng)內(nèi)存有限的情況下,可以使用 AppendChunk 方法對長整型值進行部分而非全部的操作。

GetChunk 語法

返回大型文本或二進制數(shù)據(jù) Field 對象的全部或部分內(nèi)容 。

variable = field.GetChunk( Size )

返回值

返回變體型。

參數(shù)

Size 長整型表達式,等于所要檢索的字節(jié)或字符數(shù)。

說明

使用 Field 對象的 GetChunk 方法檢索其部分或全部長二進制或字符數(shù)據(jù)。在系統(tǒng)內(nèi)存有限的情況下,可使用 GetChunk 方法處理部分而非全部的長整型值。

GetChunk 調(diào)用返回的數(shù)據(jù)將賦給“變量”。如果 Size 大于剩余的數(shù)據(jù),則

GetChunk 僅返回剩余的數(shù)據(jù)而無需用空白填充“變量”。如果字段為空,則

GetChunk 方法返回 Null。

每個后續(xù)的 GetChunk 調(diào)用將檢索從前一次 GetChunk 調(diào)用停止處開始的數(shù)據(jù)。但是,如果從一個字段檢索數(shù)據(jù)然后在當前記錄中設置或讀取另一個字段的值,ADO 將認為已從第一個字段中檢索出數(shù)據(jù)。如果在第一個字段上再次調(diào)用 GetChunk 方法,ADO 將把調(diào)用解釋為新的 GetChunk 操作并從記錄的起始處開始讀取。如果其他 Recordset 對象不是首個 Recordset 對象的副本,則訪問其中的字段不會破壞 GetChunk 操作。如果 Field 對象的 Attributes 屬性中的 adFldLong 位設置為 True,則可以對該字段使用 GetChunk 方法。如果在 Field 對象上使用 Getchunk 方法時沒有當前記錄,將產(chǎn)生錯誤 3021(無當前記錄)。接下來,我們就要來設計我們的數(shù)據(jù)庫了,作為測試我們的數(shù)據(jù)庫結構如下(Access97):

字段名稱 類型 描述

id 自動編號 主鍵值

img OLE對象 用來保存圖片數(shù)據(jù)

?

?

? 出處:站長百科 原文地址:http://www.zzbaike.com/wiki 本電子書整理自站長百科wiki 詞條,查看最新內(nèi)容請訪問網(wǎng)站

,

站長百科(www.zzbaike.com ) 站長自己的百科全書

對于在MS SQL Server7中,對應的結構如下:

字段名稱 類型 描述

id int(Identity) 主鍵值

img image 用來保存圖片數(shù)據(jù)

現(xiàn)在開始正式編寫我們的純ASP代碼上傳部分了,首先,我們有一個提供給用戶的上傳界面,可以讓用戶選擇要上傳的圖片。代碼如下

(upload.htm):

$#@60;html$#@62;

$#@60;body$#@62;

$#@60;center$#@62;

$#@60;form name="mainForm" enctype="multipart/form-data"

action="process.asp" method=post$#@62;

$#@60;input type=file name=mefile$#@62;$#@60;br$#@62;

$#@60;input type=submit name=ok value="OK"$#@62;

$#@60;/form$#@62;

$#@60;/center$#@62;

$#@60;/body$#@62;

$#@60;/html$#@62;

注意代碼中黑色斜體的部分,一定要在Form 中有這個屬性,否則,將無法得到上傳上來的數(shù)據(jù)。

接下來,我們要在process.asp 中對從瀏覽器中獲取的數(shù)據(jù)進行必要的處理,因為我們在process.asp 中獲取到的數(shù)據(jù)不僅僅包含了我們想要的上傳上來的圖片的數(shù)據(jù),也包含了其他的無用的信息,我們需要剔除冗余數(shù)據(jù),并將處理過的圖片數(shù)據(jù)保存到數(shù)據(jù)庫中,這里我們以Access97為例。具體代碼如下(process.asp):

?

?

? 出處:站長百科 原文地址:http://www.zzbaike.com/wiki 本電子書整理自站長百科wiki 詞條,查看最新內(nèi)容請訪問網(wǎng)站

,

站長百科(www.zzbaike.com ) 站長自己的百科全書

$#@60;

response.buffer=true

formsize=request.totalbytes

formdata=request.binaryread(formsize)

bncrlf=chrB(13) & chrB(10)

divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)

datastart=instrb(formdata,bncrlf & bncrlf) 4

dataend=instrb(datastart 1,formdata,divider)-datastart

mydata=midb(formdata,datastart,dataend)

set connGraph=server.CreateObject("ADODB.connection")

connGraph.ConnectionString="driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("images.mdb") & ";uid=;PWD=;"

connGraph.Open

set rec=server.createobject("ADODB.recordset")

rec.Open "SELECT * FROM [images] where id is null",connGraph,1,3

rec.addnew

rec("img").appendchunk mydata

rec.update

rec.close

set rec=nothing

set connGraph=nothing

$#@62;

好了,這下我們就把上傳來的圖片保存到了名為images.mdb 的數(shù)據(jù)庫中了,剩下的工

?

?

? 出處:站長百科 原文地址:http://www.zzbaike.com/wiki 本電子書整理自站長百科wiki 詞條,查看最新內(nèi)容請訪問網(wǎng)站

,

站長百科(www.zzbaike.com ) 站長自己的百科全書

作就是要將數(shù)據(jù)庫中的圖片數(shù)據(jù)顯示到網(wǎng)頁上面了。一般在HTML中,顯示圖片都是使用$#@60;IMG$#@62;標簽,也就是$#@60;IMG SRC="圖片路徑"$#@62;,但是我們的圖片是保存到了數(shù)據(jù)庫中,“圖片路徑”是什么呢?呵呵,其實這個SRC 屬性除了指定路徑外,也可以這樣使用哦:

$#@60;IMG SRC="showimg.asp?id=xxx"$#@62;

所以,我們所要做的就是在showimg.asp 中從數(shù)據(jù)庫中讀出來符合條件的數(shù)據(jù),并返回到SRC 屬性中就可以了,具體代碼如下(showimg.asp):

$#@60;

set connGraph=server.CreateObject("ADODB.connection")

connGraph.ConnectionString="driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("images.mdb") & ";uid=;PWD=;"

connGraph.Open

set rec=server.createobject("ADODB.recordset")

strsql="select img from images where id=" & trim(request("id"))

rec.open strsql,connGraph,1,1

Response.ContentType = "image/*"

Response.BinaryWrite rec("img").getChunk(7500000)

rec.close

set rec=nothing

set connGraph=nothing

$#@62;

注意在輸出到瀏覽器之前一定要指定Response.ContentType = "image/*",以便正常顯示圖片。

最后要注意的地方是,我的process.asp 中作的處理沒有考慮到第一頁(upload.htm)中還有其他數(shù)據(jù),比如$#@60;INPUT type=tesxt name=userid$#@62;等等,如果有這些項目,你的process.asp 就要注意處理掉不必要的數(shù)據(jù)。

?

?

? 出處:站長百科 原文地址:http://www.zzbaike.com/wiki 本電子書整理自站長百科wiki 詞條,查看最新內(nèi)容請訪問網(wǎng)站

,

站長百科(www.zzbaike.com ) 站長自己的百科全書

更多電子書

freehost4life美國免費空間 (http://www.freehost4life.com), 服務器位于softlayer的達拉斯機房,是中國訪問速度最快的美國主機之一。

wordpress的中文翻譯文檔http://www.wordpress.la/codex.html,wordpress 開發(fā)的相關知識都有,對WordPress開發(fā)感興趣的博主會有一定的用處。 WordPress免費主題:http://www.wordpress.la/theme.html

WordPress免費插件:http://www.wordpress.la/plugin.html

WordPress 主題制作電子書:http://bbs.zzbaike.com/thread-9954-1-1.html

Apache2.2中文文檔電子書http://bbs.zzbaike.com/thread-9955-1-1.html

IXWeHosting 控制面板使用手冊(在線版 PDF電子書)

更多電子書下載:http://down.zzbaike.com/ebook/

視頻教程:

1. 美國主機IXWebHosting 使用視頻教程(在線觀看及下載)

2. Godaddy 主機及域名使用視頻教程(在線觀看及下載)

如果您有站長類電子書,請到這里與我們分享:

詳情見: http://bbs.zzbaike.com/thread-23156-1-1.html

站長百科感謝您下載閱讀,多謝支持!

?

?

? 出處:站長百科 原文地址:http://www.zzbaike.com/wiki 本電子書整理自站長百科wiki 詞條,查看最新內(nèi)容請訪問網(wǎng)站

標簽: