if errMsg="" then '----如果到此還沒有錯誤 For Each strFormElement In oFileUp.Form If IsObject(oFileUp.Form(strFormElement)) Then '如果是文件 If Not oFileUp.Form(strFormElement).IsEmpty Then '--文件不為空 flagOK=1 '--不是文件或文件大於限制,設置錯誤信息 If oFileUp.Form(strFormElement).TotalBytes<100 Then flagOK=0 ElseIf oFileUp.Form(strFormElement).TotalBytes> upFileSize Then flagOK=0 errMsg=errMsg+"文件:"&oFileUp.Form(strFormElement).UserFileName&" 大於"&upFileSize\1024&"KB!<br>" Else strShortFileName = mid(oFileUp.Form(strFormElement).UserFileName,InStrRev(oFileUp.Form(strFormElement).UserFileName, "\")+1) '取得文件名 strExtension = Mid(strShortFileName, InStrRev(strShortFileName, ".")) '取得擴展名 If strRestrictBy = "extension" Then '--驗證方式為擴展名 'strShortFileName = oFileUp.Form(strFormElement).ShortFileName '======檢查後綴名==== Select Case LCase(strExtension) Case ".jpg", ".gif", ".bmp",".png"
Case Else flagOK=0 oFileUp.Form(strFormElement).Delete Response.Write("<B>錯誤:</B> 擴展名為 <I>" & strExtension & "</I> 的文件不能被上傳。<BR>") End Select Else '--驗證方式為MIME類型 strContentType = oFileUp.Form(strFormElement).ContentType Select Case LCase(strContentType) Case "image/gif", "image/jpeg", "image/pjpeg" Case Else flagOK=0 oFileUp.Form(strFormElement).Delete Response.Write("<B>錯誤:</B> MIME類型為 <I>" & strContentType & "</I> 的文件不能被上傳。<BR>") End Select End If '--end if 驗證方式 End If 'end if 文件大小判斷
If flagOK=1 Then '如果文件通過檢查,保存文件,並插入數據庫紀錄 randomize ranNum=int(900*rnd)+100 filename=year(now())&month(now())&day(now())&hour(now())&minute(now())&second(now())&ranNum&LCase(strExtension) oFileUp.Form(strFormElement).SaveInVirtual formPath&filename '讓文件名不重復,保存文件,這裡用的是SaveInVirtual方法
'--輸出該文件的大小 Response.Write "<B>大小:</B>"&oFileUp.Form(strFormElement).TotalBytes & "<BR>" '===添加文件的信息到數據庫裡=== myIndex=right(strFormElement,1) '--取得文件的序號,如file1則取得為1,file2取得為2 temp_photoTitle=oFileUp.form("photoTitle"+myIndex) '--這四行取得對應的標題,簡介,寬度,高度 temp_photoIntro=oFileUp.form("photoIntro"+myIndex) temp_photoWidth=oFileUp.form("photoWidth"+myIndex) temp_photoHeight=oFileUp.form("photoHeight"+myIndex) '====檢查輸入,為空則給初值== temp_photoTitle=replace(trim(temp_photoTitle),"'","''") if temp_photoTitle="" then temp_photoTitle="沒有填寫" end if temp_photoIntro=replace(trim(temp_photoIntro),"'","''") if temp_photoIntro="" then temp_photoIntro="沒有填寫" end if if temp_photoWidth="" or not IsNumeric(temp_photoWidth) then temp_photoWidth=160 end if if temp_photoHeight="" or not IsNumeric(temp_photoHeight) then temp_photoHeight=120 end if '===插入數據庫=== FileSize=oFileUp.Form(strFormElement).TotalBytes sql="insert into TBL_PHOTO(albumID,groupID,userName,addTime,photoFilename,photoTitle,photoIntro,photoClick,photoSize,photoWidth,photoHeight,locked,viewPassword) values("&albumID&","&groupID&",'"&session("userName")&"','"&Now()&"','"&filename&"','"&temp_photoTitle&"','"&temp_photoIntro&"',1,"&FileSize&","&temp_photoWidth&","&temp_photoHeight&",'no','')" conn.execute sql sql="update TBL_ALBUM set photoCount=photoCount+1 where albumID="&albumID conn.execute sql sql="update TBL_GROUP set photoCount=photoCount+1 where groupID="&groupID conn.execute sql '===輸出上傳成功信息=== iCount=iCount+1 End If
Else Response.Write strFormElement & "對象為空!" End If '--end if 對象為空 End If '--end if 是否是文件 Next Set oFileUp = Nothing '刪除此對象 end if '--end if 沒有錯誤信息
response.write "<br>"&iCount&" 個文件上傳結束!" response.write "<br><a href='photo_listphoto.asp?albumID="&albumID&"'><B>返回相冊</B></a>" '=====如果有錯,輸出錯誤信息===== if errMsg<>"" then response.write "<br>"&errMsg response.write "<INPUT type='button' onClick='history.go(-1)' value='返回' class='myInput'>" end if conn.close set conn=nothing %>
建立SA FileUp 對象的方法: Set oFileUp = Server.CreateObject("SoftArtisans.FileUp")
取出表單所有項的方法: For Each strFormElement In oFileUp.Form 用 oFileUp.Form(strFormElement)就可以引用每個對象,文件也是這樣 注意:如果是多選下拉框,則用oFileUp.FormEx(strFormElement) 可以這樣來遍歷它。 For Each strSubItem In oFileUp.FormEx(strFormElement) Response.Write( strSubItem & "<BR>") Next Next