📄 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 + -