很多朋友总被文件,图片上传的问题所困惑.其实用asp实现文件,图片的上传不外两种方法.1.把文件保存到数据库中.2.用组件把文件保存在一个指定目录中.我比较赞同第二种方法,我也做过把文件保存到数据库中的方法来实现对文件的操作,但比较麻烦,除了编写比较烦琐,不清晰之外,更麻烦的是,有很多格式的文件用这种方法无法实现.第二种方法就比较好罗,但有的朋友说,用组件要注册的喔,但告诉你一个好消息,这个组件不用注册,用include包含就可以,是不是很爽啊.
上传照片源代码的下载地址:www.chiker.com/image.zip
上传照片的演示地址:www.chiker.com/image
下面是主要文件源代码的简单解释:
1.上传文件upfile.asp
上传图片 2.图片保存文件
<%
dim upload,file,formName,formPath,iCount
set upload=new upload_5xSoft ''建立上传对象
set rs=server.CreateObject ("ADODB.RecordSet" )
sql="select * from images"
rs.Open sql,conn,1,3
%>
<%'OPTION EXPLICIT%>
<%
'——————————————得到上传目录——————————————
formPath="upfile"
''在目录后加(/),upfile是指定的照片上传目录
if right(formPath,1)<>"/" then formPath=formPath&"/"
iCount=0
for each formName in upload.file ''列出所有上传了的文件
set file=upload.file(formName)
If imagesize>1024 Then%>
<%
response.end
end if
''生成一个文件对象
if file.FileSize>0 then ''如果 FileSize > 0 说明有文件数据
rs.AddNew
title=upload.form("title" )
vfname = makefilename(now())
fname = vfname & iCount & "." & GetExtendName(file.FileName)
file.SaveAs Server.mappath(formPath&fname) ''保存文件
rs("imagename" )=fname
rs("title" )=title
rs("imagesize" )=file.filesize
rs.Update
iCount=iCount+1
end if
set file=nothing
next
rs.Close
set rs=nothing
set upload=nothing ''删除此对象
conn.close
set conn=nothing
Response.Redirect "upfile.asp"
%>
<%
function makefilename(fname)
fname = now()
fname = replace(fname,"-","" )
fname = replace(fname," ","" )
fname = replace(fname,":","" )
fname = replace(fname,"PM","" )
fname = replace(fname,"AM","" )
fname = replace(fname,"上午","" )
fname = replace(fname,"下午","" )
makefilename=fname
end function
function GetExtendName(FileName)
dim ExtName
ExtName = LCase(FileName)
ExtName = right(ExtName,3)
ExtName = right(ExtName,3-Instr(ExtName,"." ))
GetExtendName = ExtName
end function
%>