

掃一掃 享優(yōu)惠
1.庫(kù)文件(upload.inc.asp)
<%
Dim oUpFileStream
Class UpFile_Class
Dim Form,File,Version,Err
Private Sub Class_Initialize
Version = "無(wú)組件上傳類(lèi) Version V1.0"
Err = -1
End Sub
Private Sub Class_Terminate
'清除變量及對(duì)像
If Err < 0 Then
Form.RemoveAll
Set Form = Nothing
File.RemoveAll
Set File = Nothing
oUpFileStream.Close
Set oUpFileStream = Nothing
End If
End Sub
Public Sub GetData (RetSize)
'定義變量
Dim RequestBinDate,sSpace,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo
Dim iFileSize,sFilePath,sFileType,sFormValue,sFileName
Dim iFindStart,iFindEnd
Dim iFormStart,iFormEnd,sFormName
'代碼開(kāi)始
If Request.TotalBytes < 1 Then
Err = 1
Exit Sub
End If
If RetSize > 0 Then
If Request.TotalBytes > RetSize Then
Err = 2
Exit Sub
End If
End If
Set Form = Server.CreateObject ("Scripting.Dictionary")
Form.CompareMode = 1
Set File = Server.CreateObject ("Scripting.Dictionary")
File.CompareMode = 1
Set tStream = Server.CreateObject ("ADODB.Stream")
Set oUpFileStream = Server.CreateObject ("ADODB.Stream")
oUpFileStream.Type = 1
oUpFileStream.Mode = 3
oUpFileStream.Open
oUpFileStream.Write Request.BinaryRead (Request.TotalBytes)
oUpFileStream.Position = 0
RequestBinDate = oUpFileStream.Read
iFormEnd = oUpFileStream.Size
bCrLf = ChrB (13) & ChrB (10)
'取得每個(gè)項(xiàng)目之間的分隔符
sSpace = MidB (RequestBinDate,1, InStrB (1,RequestBinDate,bCrLf)-1)
iStart = LenB (sSpace)
iFormStart = iStart+2
'分解項(xiàng)目
Do
iInfoEnd = InStrB (iFormStart,RequestBinDate,bCrLf & bCrLf)+3
tStream.Type = 1
tStream.Mode = 3
tStream.Open
oUpFileStream.Position = iFormStart
oUpFileStream.CopyTo tStream,iInfoEnd-iFormStart
tStream.Position = 0
tStream.Type = 2
tStream.CharSet = "gb2312"
sInfo = tStream.ReadText
'取得表單項(xiàng)目名稱(chēng)
iFormStart = InStrB (iInfoEnd,RequestBinDate,sSpace)-1
iFindStart = InStr (22,sInfo,"name=""",1)+6
iFindEnd = InStr (iFindStart,sInfo,"""",1)
sFormName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
'如果是文件
If InStr (45,sInfo,"filename=""",1) > 0 Then
Set oFileInfo = new FileInfo_Class
'取得文件屬性
iFindStart = InStr (iFindEnd,sInfo,"filename=""",1)+10
iFindEnd = InStr (iFindStart,sInfo,"""",1)
sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
oFileInfo.FileName = Mid (sFileName,InStrRev (sFileName, "")+1)
oFileInfo.FilePath = Left (sFileName,InStrRev (sFileName, "")+1)
oFileInfo.FileExt = Mid (sFileName,InStrRev (sFileName, ".")+1)
iFindStart = InStr (iFindEnd,sInfo,"Content-Type: ",1)+14
iFindEnd = InStr (iFindStart,sInfo,vbCr)
oFileInfo.FileType = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
oFileInfo.FileStart = iInfoEnd
oFileInfo.FileSize = iFormStart -iInfoEnd -2
oFileInfo.FormName = sFormName
file.add sFormName,oFileInfo
else
'如果是表單項(xiàng)目
tStream.Close
tStream.Type = 1
tStream.Mode = 3
tStream.Open
oUpFileStream.Position = iInfoEnd
oUpFileStream.CopyTo tStream,iFormStart-iInfoEnd-2
tStream.Position = 0
tStream.Type = 2
tStream.CharSet = "gb2312"
sFormValue = tStream.ReadText
If Form.Exists (sFormName) Then
Form (sFormName) = Form (sFormName) & ", " & sFormValue
else
form.Add sFormName,sFormValue
End If
End If
tStream.Close
iFormStart = iFormStart+iStart+2
'如果到文件尾了就退出
Loop Until (iFormStart+2) = iFormEnd
RequestBinDate = ""
Set tStream = Nothing
End Sub
End Class
'文件屬性類(lèi)
Class FileInfo_Class
Dim FormName,FileName,FilePath,FileSize,FileType,FileStart,FileExt
'保存文件方法
Public Function SaveToFile (Path)
On Error Resume Next
Dim oFileStream
Set oFileStream = CreateObject ("ADODB.Stream")
oFileStream.Type = 1
oFileStream.Mode = 3
oFileStream.Open
oUpFileStream.Position = FileStart
oUpFileStream.CopyTo oFileStream,FileSize
oFileStream.SaveToFile Path,2
oFileStream.Close
Set oFileStream = Nothing
if Err.Number<>0 then
SaveToFile=err.number&"**"&Err.descripton
else
SaveToFile="ok"
end if
End Function
'取得文件數(shù)據(jù)
Public Function FileDate
oUpFileStream.Position = FileStart
FileDate = oUpFileStream.Read (FileSize)
End Function
End Class
%>
2.處理用戶提交后的頁(yè)面(upload.asp)
<!--#include file="upload.inc.asp"-->
<html>
<head>
<title>文件上傳</title>
</head>
<body topmargin="0" leftmargin="0">
<table width=100% border=0 cellspacing="0" cellpadding="0"><tr><td class=tablebody1 width=100% height=100% >
<%
dim upload,file,formName,formPath,filename,fileExt
dim ranNum
call UpFile()
'===========無(wú)組件上傳(upload_0)====================
sub UpFile()
set upload=new UpFile_Class '建立上傳對(duì)象
upload.GetData (500*1024) '取得上傳數(shù)據(jù),此處即為500 K
if upload.err > 0 then
select case upload.err
case 1
Response.Write "請(qǐng)先選擇你要上傳的文件 [ <a href=# onclick=history.go(-1)>重新上傳</a> ]"
case 2
Response.Write "圖片大小超過(guò)了限制 500 K [ <a href=# onclick=history.go(-1)>重新上傳</a> ]"
end select
exit sub
else
formPath=upload.form("filepath") '文件保存目錄,此目錄必須為程序可讀寫(xiě)
if formPath="" then
formPath="rwdata/"
end if
'在目錄后加(/)
if right(formPath,1)<>"/" then
formPath=formPath&"/"
end if
for each formName in upload.file '列出所有上傳了的文件
set file=upload.file(formName) '生成一個(gè)文件對(duì)象
if file.filesize<100 then
response.write "請(qǐng)先選擇你要上傳的圖片 [ <a href=# onclick=history.go(-1)>重新上傳</a> ]"
response.end
end if
fileExt=lcase(file.FileExt)
if CheckFileExt(fileEXT)=false then
response.write "文件格式不正確 [ <a href=# onclick=history.go(-1)>重新上傳</a> ]"
response.end
end if
'randomize
ranNum=int(90000*rnd)+10000
filename=formPath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt
if file.FileSize>0 then '如果 FileSize > 0 說(shuō)明有文件數(shù)據(jù)
result=file.SaveToFile(Server.mappath(filename)) '保存文件
if result="ok" then
response.write formName&" upload OK, had saved to "&filename&"<br>"
else
response.write formName&" upload Fail,"&result&"<br>"
end if
end if
set file=nothing
next
set upload=nothing
end if
end sub
'判斷文件類(lèi)型是否合格
Private Function CheckFileExt (fileEXT)
dim Forumupload
Forumupload="gif,jpg,bmp,jpeg"
Forumupload=split(Forumupload,",")
for i=0 to ubound(Forumupload)
if lcase(fileEXT)=lcase(trim(Forumupload(i))) then
CheckFileExt=true
exit Function
else
CheckFileExt=false
end if
next
End Function
%>
</td></tr></table>
</body>
</html>
3.HTML 表單(upload.html)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>asp 無(wú)組件上傳</title>
</head>
<body>
請(qǐng)選擇要上傳的文件
<form action="upfile.asp" method="post" enctype="multipart/form-data" name="form1">
<input type="file" name="file">
<!--<br>
<input type="file" name="file">
<br>
<input type="file" name="file">
<br>-->
<input type="submit" name="Submit" value="提交">
</form>
</body>
</html>
珠海易搜信息技術(shù)有限公司
官方服務(wù)號(hào)
運(yùn)營(yíng)部-區(qū)經(jīng)理
新手入門(mén) 易搜大講堂 建站攻略 常用文檔下載 備案教程 域名專(zhuān)題 主機(jī)專(zhuān)題 網(wǎng)站建設(shè)專(zhuān)題 IDC資訊 地區(qū)網(wǎng)站建設(shè)
域名管理 主機(jī)管理 建站寶盒管理 400電話管理 備案管理
免費(fèi)體驗(yàn) 每周更新 new 合作伙伴 友情鏈接 誠(chéng)聘英才 企業(yè)服務(wù) 權(quán)利與義務(wù) 未注冊(cè)域名列表 站長(zhǎng)工具
關(guān)于我們 聯(lián)系我們 客服中心 常見(jiàn)問(wèn)題 支付方式 提交問(wèn)題 舉報(bào)中心 公司資質(zhì)