ASP无组件文件上传[数据库存储]
可能有不少的朋友介绍了很多无组件文件上传的例子,我也谈谈我的初次的示例,以下为本人初次使用的示例:
第一步: 建立数据库Images
第二步: 建立数据表Image,表结构如下:
ID 主键,自动列
ImageName varchar(50) 文件的名称
ImageType varchar(50) 文件的MIME类型
Image image 文件字段
数据库的连接文件保存为:conn.asp(自己修改一下连接)
<%
dim conn
dim connstr
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Driver=SQL Server;Server=blankfoxcat;UID=sa;PWD=sa;DataBase=Images"
conn.Open connstr
%>
第三步:保存下面的代码为fupload.inc
<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
'限制上传图片大小
Dim UploadSizeLimit
'********************************** 得到上传数据 **********************************
Function GetUpload()
Dim Result
Set Result = Nothing
set errchk=nothing
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then '检查表单是否以POST形式提交
Dim CT, PosB, Boundary, Length, PosE,errtxt
CT = Request.ServerVariables("HTTP_Content_Type") '读取前页文件头
If LCase(Left(CT, 19)) = "multipart/form-data" Then '检查表单的Content是以multipart/form-data形式提交
PosB = InStr(LCase(CT), "boundary=") '找到内容的分界
If PosB > 0 Then Boundary = Mid(CT, PosB + 9) '划出内容部分
Length = CLng(Request.ServerVariables("HTTP_Content_Length")) '给出上传文件的大小
if "" & UploadSizeLimit<>"" then '如果有图片上传限制就对比上传文件,否则无限制
UploadSizeLimit = clng(UploadSizeLimit)
if Length > UploadSizeLimit then
Request.BinaryRead(Length)
exit function
end if
end if
If Length > 0 And Boundary <> "" Then '判断是否有数据提交
Boundary = "--" & Boundary
Dim Head, Binary
Binary = Request.BinaryRead(Length) 'Reads binary data from client
'得到上传文件的解决数据
Set Result = SeparateFields(Binary, Boundary)