?? book_add_picture2.asp
字號:
<% Option Explicit %>
<!--#INCLUDE FILE="../odbc_connection2.asp"-->
<!--#INCLUDE FILE="../function2.asp"-->
<%
'下面首先獲取上傳數據,此時表單信息和文件信息都混合在一起傳了過來
Dim formData,formsize
formsize=Request.TotalBytes '獲取傳上來的二進制數據的大小
formdata=Request.BinaryRead(formsize) '獲取傳上來的二進制數據
'-------------------------------------------------------------------------
'下面將這個二進制數據進行拆分,首先拆分出表單中文件的有關信息
'這些變量依次用來存放客戶端文件路徑,文件的Content-type,二進制文件內容,文件大小
Dim filepath,contentType,fileimage,filesize
'bncrlf為回車換行字符串,divider為表單中不同項目之間的分隔符號,dataStart為開始位置,
'dataEnd為結束位置,dataLen為要取信息的長度,temp為臨時使用,為了記住當前位置。
Dim bncrlf,divider,dataStart,dataEnd,dataLen,temp
bncrlf=ChrB(13) & ChrB(10) '回車換行標記
divider=LeftB(formData,CInt(InstrB(formdata,bncrlf))-1) '返回分隔符
'下面首先獲取文件的客戶端路徑
datastart=InstrB(formdata,bncrlf)+59 '定位到第1個字符
dataend=InstrB(datastart,formdata,bncrlf)-2 '定位到最后1個字符
dataLen=dataend-datastart+1 '返回要取信息的長度
filepath=MidB(formdata,datastart,datalen) '返回文件路徑
filepath=BinaryToString(filepath) '調用函數,轉換為文本
'下面獲取文件的MIME類型
temp=dataend '記住當前位置
datastart=temp+18 '定位到第1個字符
dataend=InstrB(datastart,formdata,bncrlf & bncrlf)-1 '定位到最后1個字符
dataLen=dataend-datastart+1 '返回要取信息的長度
contentType=MidB(formdata,datastart,datalen) '返回MIME類型
contentType=BinaryToString(contentType) '調用函數,轉換為文本
'下面獲取文件內容,注意不能直接在頁面輸出
temp=dataend
datastart=dataend+5 '定位到第1個字符
dataend=InstrB(datastart,formdata,divider)-3 '定位到最后1個字符
dataLen=dataend-datastart+1 '返回要取信息的長度
fileimage=MidB(formdata,datastart,datalen) '返回文件內容
'下面獲取文件文件大小(單位為字節)
filesize=Lenb(fileimage)
'-----------------------------------------------------------------------------------------------------------
'下面就可以將二進制內容保存到數據庫中了……
'!!!因為當文件大小為奇數字符時,在往數據庫中保存時有一些小問題,會少一個字節,所以這里先給它加一個二進制空格
If filesize Mod 2 = 1 Then
fileimage=fileimage & Chrb(32)
End If
'下面建立Recordset對象
Dim rs,strSql
strSql="Select * From book Where Bookid=" & Session("BookId")
Set rs=Server.CreateObject("Adodb.Recordset")
rs.Open strSql,db,1,3
'下面更新該記錄
rs("picture").AppendChunk fileimage '將二進制文件保存到數據庫中
rs.Update
'成功插入數據庫后,返回首頁
Response.Redirect "book_list.asp"
%>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -