問題描述:
網上的搜索多而雜,越看越迷茫。..........
最好把代碼寫在每頁上,大概兩三頁就能解決。謝謝大家的幫助!!!!!!
分析:
三個頁面:選擇頁面,上傳子頁面,叫做代碼頁upload.inc,
我自己也在用這個。LZ會給妳加分。
1瀏覽和上傳:
& ltform action = " sub " method = " post " enctype = " multipart/form-data " target = " _ self " >
& lt輸入類型=文件名= src size = "20" value = "browse " >
& ltinput type = submit value = " upload " name = b 1 showprocessbar = " true " >
& lt/form & gt;
Sub上傳並返回地址,並在會話(ccc)中保存文件名。
& lt!-# include FILE = " upload . Inc "-& gt;
& lt%
dim上傳,文件,表單名稱,表單路徑,iCount,文件格式
設置上傳=新上傳_F
函數MakedownName()
模糊名稱
fname = now()
fname = replace(fname,"-","")
fname = replace(fname," ","")
fname = replace(fname,":","")
fname = replace(fname," PM ","")
fname = replace(fname," AM ","")
Fname = replace(fname," morning ","")
Fname = replace(fname,"午後","")
fname = int(fname)+int((10-1+1)* Rnd+1)
MakedownName=fname
結束功能
formPath="upload/"
iCount=0
對於upload.file ' '中的每個表單名稱,列出所有上傳的文件。
Set file=upload.file(formName)' '生成文件對象。
file format = lcase(right(file . filename,4))
如果文件格式= " "或文件格式= " "那麽
response.write " & lt腳本& gtAlert('文件格式不正確,請重新上傳!');location = ' " & amp請求。服務器變量(" HTTP _ REFERER ")& amp;& lt/script & gt;"
響應.結束
如果…就會結束
如果文件。文件大小& gt0 then ' ' If filesize >;0表示有文件數據。
newname = make down name()& amp;"."& ampmid(文件。文件名,InStrRev(文件。文件名,“”)+1)
session("ccc")=newname
文件。save as server . mappath(formPath & amp;Newname)' '保存文件。
iCount=iCount+1
其他
response.write " & ltfont style=FONT-SIZE:9pt >。文件
響應.結束
如果…就會結束
然後
% & gt
& lt%
response.write " & lta href = ' upload/" & amp;新名字& amptarget = _ blank & gt上傳/" & amp;新名字& amp& lt/a & gt;(“& ampcint(文件。FileSize/1024)& amp;k)上傳成功!"
% & gt
& lt%
設置文件=無
Set upload=nothing ' '刪除此對象。
% & gt
upload.inc頁面的代碼如下:
& lt腳本RUNAT =服務器語言= VBSCRIPT & gt
dim upfile_Stream
課程上傳_F
dim表單、文件、版本
私有子類_Initialize
dim iStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,theFile
dim strDiv,mFormName,mFormValue,mFileName,mFileSize,mFilePath,iDivLen,mStr
Version= "上傳版本1.0 "
如有要求。TotalBytes & lt1然後退出接頭
set Form=CreateObject("腳本。字典》)
set File=CreateObject("腳本。字典》)
set up file _ Stream = CreateObject(" Adodb。流”)
upfile_Stream.mode=3
upfile_Stream.type=1
upfile_Stream.open
upfile_Stream.write請求BinaryRead(請求。總字節數)
vbEnter=Chr(13)人權中心(10)
iDivLen=inString(1,vbEnter)+1
strDiv=subString(1,iDivLen)
iFormStart=iDivLen
iFormEnd=inString(iformStart,strDiv)-1
而iFormStart & ltiFormEnd
iStart=inString(iFormStart," name= " ")
iEnd=inString(iStart+6,"""")
mFormName=subString(iStart+6,iEnd-iStart-6)
iFileNameStart = inString(iEnd+1," filename= " ")
如果iFileNameStart & gt0和iFileNameStart & lt那就這樣吧
iFileNameEnd = inString(iFileNameStart+10,"""")
mFileName = subString(ifilename start+10,ifilename end-ifilename start-10)
iStart = inString(iFileNameEnd+1,vbEnter & ampvbEnter)
iEnd=inString(iStart+4,vbEnter & ampstrDiv)
如果iEnd & gt那我開始吧
mFileSize=iEnd-iStart-4
其他
mFileSize=0
如果…就會結束
設置文件=新文件信息
文件。FileName=getFileName(mFileName)
文件。FilePath=getFilePath(mFileName)
文件。FileSize=mFileSize
文件。FileStart=iStart+4
文件。FormName=FormName
file.add mFormName,文件
其他
iStart=inString(iEnd+1,vbEnter & ampvbEnter)
iEnd=inString(iStart+4,vbEnter & ampstrDiv)
如果iEnd & gt那我開始吧
mFormValue=subString(iStart+4,iEnd-iStart-4)
其他
mFormValue= " "
如果…就會結束
形式。添加mFormName,mFormValue
如果…就會結束
iFormStart=iformEnd+iDivLen
iFormEnd=inString(iformStart,strDiv)-1
行
末端接頭
私有函數子串(theStart,theLen)
dim i,c,stemp
upfile_Stream。Position=theStart-1
stemp= " "
對於i=1到theLen
如果upfile_Stream。EOS然後退出
c=ascB(upfile_Stream。閱讀(1))
如果c & gt那麽127
如果upfile_Stream。EOS然後退出
stemp = stemp & ampchr(AscW(ChrB(AscB(upfile _ Stream。閱讀(1)))& amp;ChrB(c)))
i=i+1
其他
stemp = stemp & amp人權委員會(c)
如果…就會結束
然後
subString=stemp
結束功能
私有函數inString(theStart,varStr)
dim i,j,bt,theLen,str
輸入字符串=0
Str=toByte(varStr)
theLen=LenB(Str)
for i=theStart to upfile_Stream。尺碼-長度
如果我& gtupfile_Stream.size然後退出函數
upfile_Stream。位置=i-1
if AscB(upfile_Stream。讀作(1))=AscB(midB(Str,1))然後
InString=i
對於j=2到theLen
如果upfile_Stream。那麽EOS
輸入字符串=0
為...退出
如果…就會結束
if AscB(upfile_Stream。read(1))& lt;& gtAscB(MidB(Str,j,1))然後
輸入字符串=0
為...退出
如果…就會結束
然後
if InString & lt& gt0然後退出功能
如果…就會結束
然後
結束功能
私有子類_終止
形式。全部刪除
文件。全部刪除
設置表單=無
設置文件=無
upfile_Stream.close
設置文件流=無
末端接頭
私有函數GetFilePath(FullPath)
如果FullPath & lt& gt”“那麽
GetFilePath = left(FullPath,InStrRev(FullPath," \ "))
其他
GetFilePath = " "
如果…就會結束
結束功能
私有函數GetFileName(完整路徑)
如果FullPath & lt& gt”“那麽
GetFileName = mid(FullPath,InStrRev(FullPath," \")+1)
其他
GetFileName = " "
如果…就會結束
結束功能
私有函數toByte(Str)
dim i,iCode,c,iLow,iHigh
toByte= " "
For i=1到Len(Str)
c=mid(Str,I,1)
iCode =Asc(c)
如果iCode & lt0,則iCode = iCode + 65535
如果iCode & gt那就255
iLow = Left(十六進制(Asc(c)),2)
iHigh =Right(十六進制(Asc(c)),2)
托字節=托字節& ampchrB(" & amp;H " & ampiLow)和ampchrB(" & amp;H " & ampiHigh)
其他
托字節=托字節& ampchrB(AscB(c))
如果…就會結束
然後
結束功能
結束類
FileInfo類
dim FormName,文件名,文件路徑,文件大小,文件開始
私有子類_Initialize
文件名= " "
文件路徑= " "
文件大小= 0
文件開始= 0
FormName = " "
末端接頭
公共函數另存為(完整路徑)
dim dr,ErrorChar,I
SaveAs=1
如果trim(fullpath)= " "或FileSize=0或FileStart=0或FileName= " "則退出函數
如果FileStart=0或right(fullpath,1)="/"則退出函數
set dr=CreateObject("Adodb。流”)
博士模式=3
dr.Type=1
開放博士
upfile _ stream . position = file start-1
upfile_Stream.copyto dr,FileSize
博士保存文件完整路徑,2
克洛斯博士
設置dr =無
另存為=0
結束功能
結束類
& lt/SCRIPT & gt;