嵌套調用:
& ltiframe name = " ad " frame border = 0 width = 100% height = 50 scrolling = no src = uploada . ASP & gt;& lt/iframe & gt;
直接鏈接:uploada.asp
文件保存路徑:上傳
自行設置上傳文件的類型和大小。
===========================================
第壹個文件:inc/confing.asp(inc是文件夾名)。
& lt%
Const EnableUploadFile="Yes " '是否打開文件上傳?
Const MaxFileSize=200 '上載文件大小限制。
const up file type = " gif | jpg | BMP | png | swf | doc | txt | rar | zip " '允許的上傳文件類型。
% & gt
===========================================
第二個文件:inc/upload.asp
dim輸出文件流
課程上傳_文件
暗淡的形式?文件?版本
私有子類_Initialize
定義變量
dim RequestBinDate?sStart?bCrLf?辛福?iInfoStart?iInfoEnd?tStream?iStart?oFileInfo
dim iFileSize?sFilePath?sFileType?sFormvalue?sFileName
dim iFindStart?iFindEnd
dim iFormStart?iFormEnd?sFormName
代碼開始
Version= "不帶組件的上傳類版本0.96 "
設置表單=服務器。CreateObject("腳本。字典》)
設置文件=服務器。CreateObject("腳本。字典》)
如有要求。TotalBytes & lt1然後退出接頭
設置tStream = Server。CreateObject("adodb.stream ")
set oUpFileStream = Server。CreateObject("adodb.stream ")
oUpFileStream。Type = 1
oUpFileStream。模式= 3
oUpFileStream。打開
oUpFileStream。寫請求。BinaryRead(請求。總字節數)
oUpFileStream。位置=0
RequestBinDate = oUpFileStream。閱讀
iFormEnd = oUpFileStream。大小
bCrLf = chrB(13)chrB(10)
獲取各項之間的分隔符。
sStart = MidB(RequestBinDate?1?InStrB(1?RequestBinDate?bCrLf)-1)
iStart = LenB (sStart)
iFormStart = iStart+2
分解項目
做
iInfoEnd = InStrB(iFormStart?RequestBinDate?bCrLf & ampbCrLf)+3
tStream。Type = 1
tStream。模式= 3
tStream。打開
oUpFileStream。Position = iFormStart
oUpFileStream。復制到tStream?iInfoEnd-iFormStart
tStream。位置= 0
tStream。類型= 2
tStream。Charset ="gb2312 "
sInfo = tStream。閱讀文本
獲取表單項目的名稱
iFormStart = InStrB(iInfoEnd?RequestBinDate?sStart)-1
iFindStart = InStr(22?辛福?" name= " "?1)+6
iFindEnd = InStr(iFindStart?辛福?""""?1)
sFormName = Mid (sinfo?iFindStart?iFindEnd-iFindStart)
如果是文件的話。
如果InStr (45?辛福?" filename= " "?1)>那麽0
set oFileInfo=新文件信息
獲取文檔屬性
iFindStart = InStr(iFindEnd?辛福?" filename= " "?1)+10
iFindEnd = InStr(iFindStart?辛福?""""?1)
sFileName = Mid (sinfo?iFindStart?iFindEnd-iFindStart)
oFileInfo。FileName = GetFileName(sFileName)
oFileInfo。FilePath = GetFilePath(sFileName)
oFileInfo。FileExt = GetFileExt(sFileName)
iFindStart = InStr(iFindEnd?辛福?"內容類型:"?1)+14
iFindEnd = InStr(iFindStart?辛福?vbCr)
oFileInfo。FileType = Mid (sinfo?iFindStart?iFindEnd-iFindStart)
oFileInfo。FileStart = iInfoEnd
oFileInfo。FileSize = iFormStart -iInfoEnd -2
oFileInfo。FormName = sFormName
file.add sFormName?oFileInfo
其他
如果是表單項。
tStream。關閉
tStream。Type = 1
tStream。模式= 3
tStream。打開
oUpFileStream。Position = iInfoEnd
oUpFileStream。復制到tStream?iFormStart-iInfoEnd-2
tStream。位置= 0
tStream。類型= 2
tStream。Charset = "gb2312 "
sFormvalue = tStream。閱讀文本
形式。添加sFormName?sFormvalue
如果…就會結束
tStream。關閉
iFormStart = iFormStart+iStart+2
如果到達文件末尾,請退出。
循環直到(iFormStart+2) = iFormEnd
RequestBinDate= " "
設置tStream = nothing
末端接頭
私有子類_終止
清除變量和對象。
如果沒有請求。TotalBytes & lt那麽1
oUpFileStream。關閉
set oUpFileStream =nothing
如果…就會結束
形式。全部刪除
文件。全部刪除
設置表單=無
設置文件=無
末端接頭
獲取文件路徑。
私有函數GetFilePath(FullPath)
如果FullPath & lt& gt”“那麽
GetFilePath = left(FullPath?InStrRev(FullPath?"\"))
其他
GetFilePath = " "
如果…就會結束
結束功能
獲取文件名
私有函數GetFileName(完整路徑)
如果FullPath & lt& gt”“那麽
GetFileName = mid(FullPath?InStrRev(FullPath?"\")+1)
其他
GetFileName = " "
如果…就會結束
結束功能
去接分機
私有函數GetFileExt(完整路徑)
如果FullPath & lt& gt”“那麽
GetFileExt = mid(FullPath?InStrRev(FullPath?".")+1)
其他
GetFileExt = " "
如果…就會結束
結束功能
結束類
文件屬性類
FileInfo類
dim FormName?文件名?文件路徑?文件大小?文件類型?文件開始?文件擴展名
私有子類_Initialize
文件名= " "
文件路徑= " "
文件大小= 0
文件開始= 0
FormName = " "
文件類型= " "
FileExt = " "
末端接頭
保存文件方法
公共函數SaveToFile(完整路徑)
朦朧的幻想?ErrorChar?我
SaveToFile=1
if trim(fullpath)= " "或right(fullpath?1)="/"然後退出功能
set of ilestream = CreateObject(" Adodb。流”)
oFileStream。Type=1
oFileStream。模式=3
oFileStream。打開
oup filestream . position = FileStart
oup filestream . copy to of ilestream?文件大小
oFileStream。SaveToFile完整路徑?2
oFileStream。關閉
set oFileStream=nothing
SaveToFile=0
結束功能
結束類
% & gt
========================================
第三份文件:uploada.asp
& lt!-# include file = " Inc/config . ASP "-& gt;
& lthtml & gt
& lthead & gt
& ltmeta http-equiv = " Content-Type " Content = " text/html;charset=gb2312 " >
& ltstyle type="text/css " >
& lt!-
正文{
背景色:# f5feed
字體大小:9pt
}
. tx 1 { height:20px;字體大小:9pt邊框:1px實心;邊框顏色:# 000000;顏色:#0000FF}
-& gt;
& lt/style & gt;
& ltlink href = " Manage/Inc/management . CSS " rel = " style sheet " type = " text/CSS " >
& lt/head & gt;
& ltbody leftmargin="0" topmargin="0 " >
& lt%
如果EnableUploadFile="Yes "則
% & gt
& ltform action = " upfile a . ASP " method = " post " name = " form 1 " enc type = " multipart/form-data " & gt;
& ltinput name = " FileName " type = " FILE " class = " tx 1 " size = " 20 " >
& ltinput type = " submit " name = " submit " value = " upload " style = " border:1px double RGB(88?88?88);font:9pt " & gt;
& lt/form & gt;
& lt%
如果…就會結束
% & gt
& lt/body & gt;
& lt/html & gt;
============================
第四份文件:upfilea.asp
& lt!-# include file = " Inc/config . ASP "-& gt;
& lt!-# include file = " Inc/upload . ASP "-& gt;
& lt%
' Const upload_type=0 '上傳方法:0=上傳類而不用擔心和組件,1=FSO上傳2=lyfupload,3=aspupload,4 = chinaaspupload。
dim上傳?文件?formName?保存路徑?文件名?文件擴展名
暗淡數目
dim啟用上傳
dim論壇上傳
迪姆蘭努姆
dim上傳文件類型
暗淡味精?發現錯誤
msg= " "
founderr=false
EnableUpload=false
SavePath = "Upload " '存儲上傳文件的目錄。
如果正確(保存路徑?1)& lt;& gt“/”則SavePath = SavePath & amp目錄後添加“/”號(/)。
% & gt
& lt%
come instr = lcase(request . server variables(" HTTP _ HOST "))
Url=split(ComeinSTR)
yourthing=Url(0)
% & gt
& lthtml & gt
& lthead & gt
& ltlink href = " Manage/Inc/management . CSS " rel = " style sheet " type = " text/CSS " >
& ltmeta http-equiv = " Content-Type " Content = " text/html;charset=gb2312 " >
& lt/head & gt;
& ltbody & gt
& lt%
如果EnableUploadFile="NO "則
Response.write“系統中未開啟文件上傳功能”
其他
選擇案例上傳_類型
案例0
Call upload_0()'使用上下文上載不帶組件的類。
其他情況
結束選擇
如果…就會結束
% & gt
& lt/body & gt;
& lt/html & gt;
& lt%
Sub upload_0()'使用上下文上載不帶組件的類。
Set upload=new upload_file '來創建上傳對象。
列出所有上傳的文件。
Set file=upload.file(formName)'以生成file對象。
if file.filesize & lt那就100
Msg= "請先選擇您要上傳的文件!"
founderr=true
如果…就會結束
if file.filesize & gt(MaxFileSize*1024)然後
Msg= "文件大小超出限制,最大大小只能上傳" &;最大文件大小& amp“K的檔案!”
founderr=true
如果…就會結束
fileExt=lcase(file。FileExt)
Forumupload=split(UpFileType?"|")
對於i=0到ubound(Forumupload)
如果fileEXT=trim(Forumupload(i)),則
EnableUpload=true
為...退出
如果…就會結束
然後
如果fileEXT="asp "或fileEXT="asa "或fileEXT="aspx ",則
EnableUpload=false
如果…就會結束
如果EnableUpload=false,則
Msg= "該文件類型不允許上傳!\ n \ n \只允許上載這些文件類型:“&;上行文件類型
response.write " & lt腳本語言= javascript & gt預警('此文件類型不允許上傳!\ n \ n \只允許上載這些文件類型:“&;
上傳文件類型& amp"');"
response . write " JavaScript:history . go(-1)& lt;/script >
founderr=true
如果…就會結束
strJS = " & lt腳本語言= javascript & gt”& ampvbcrlf
如果發現錯誤& lt& gt那是真的
使不規則化
ranNum=int(900*rnd)+100
文件名=保存路徑& amp年(現在)和。月(現在)和。日(現在)與時;小時(現在)& amp分鐘(現在)& amp第二次(現在)& amp蘭納姆& amp"."& amp文件擴展名
' file . savetofile server . mappath(filename)'保存文件。
Msg= "文件上傳成功!"
FileType=right(fileExt?3)
選擇案例文件類型
案例“jpg”?“gif”?“巴新”?"骨形態發生蛋白"
案例“主權財富基金”
其他情況
strJS = strJS & amp" range.text= '單擊以瀏覽此文件';"& ampvbcrlf
結束選擇
如果…就會結束
strJS = strJS & amp“alert(“& amp;味精& amp');“& ampvbcrlf
strJS = strJS & amp“& lt/script >
response.write strJS
Response.write“圖片上傳成功!文件路徑是/" &;文件名& amp“& ltbr >;
response . write“http://”;;& amp妳的東西& amp“/”& amp;文件名& amp“& ltbr >;
設置文件=無
然後
設置上傳=無
末端接頭
% & gt