⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 book_add_picture2.asp

📁 实验教学系统 很好用 有学生 老师 管理等模块 便于学校使用
💻 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 + -