當前位置:首頁 » 文件管理 » asp上傳文件組件

asp上傳文件組件

發布時間: 2025-07-27 01:41:48

1. asp文件上傳的問題!!急!!!

找一個無組件上傳類.比如無懼上傳類

<%
'----------------------------------------------------------------------
'轉發時請保留此聲明信息,這段聲明不並會影響你的速度!
'******************* 無懼上傳類 V2.2 ************************************
'作者:梁無懼
'網站:http://www.25cn.com
'電子郵件:[email protected]
'版權聲明:版權所有,源代碼公開,各種用途均可免費使用,但是修改後必須把修改後的文件
'發送一份給作者.並且保留作者此版權信息
'**********************************************************************
'----------------------------------------------------------------------
'----------------------------------------------------------------------
'文件上傳類
Class UpFile_Class

Dim Form,File
Dim AllowExt_ '允許上傳類型(白名單)
Dim NoAllowExt_ '不允許上傳類型(黑名單)
Dim IsDebug_ '是否顯示出錯信息
Private oUpFileStream '上傳的數據流
Private isErr_ '錯誤的代碼,0或true表示無錯
Private ErrMessage_ '錯誤的字元串信息
Private isGetData_ '指示是否已執行過GETDATA過程

'------------------------------------------------------------------
'類的屬性
Public Property Get Version
Version="無懼上傳類 Version V2.0"
End Property

Public Property Get isErr '錯誤的代碼,0或true表示無錯
isErr=isErr_
End Property

Public Property Get ErrMessage '錯誤的字元串信息
ErrMessage=ErrMessage_
End Property

Public Property Get AllowExt '允許上傳類型(白名單)
AllowExt=AllowExt_
End Property

Public Property Let AllowExt(Value) '允許上傳類型(白名單)
AllowExt_=LCase(Value)
End Property

Public Property Get NoAllowExt '不允許上傳類型(黑名單)
NoAllowExt=NoAllowExt_
End Property

Public Property Let NoAllowExt(Value) '不允許上傳類型(黑名單)
NoAllowExt_=LCase(Value)
End Property

Public Property Let IsDebug(Value) '是否設置為調試模式
IsDebug_=Value
End Property

'----------------------------------------------------------------
'類實現代碼

'初始化類
Private Sub Class_Initialize
isErr_ = 0
NoAllowExt="" '黑名單,可以在這里預設不可上傳的文件類型,以文件的後綴名來判斷,不分大小寫,每個每綴名用;號分開,如果黑名單為空,則判斷白名單
NoAllowExt=LCase(NoAllowExt)
AllowExt="" '白名單,可以在這里預設可上傳的文件類型,以文件的後綴名來判斷,不分大小寫,每個後綴名用;號分開
AllowExt=LCase(AllowExt)
isGetData_=false
End Sub

'類結束
Private Sub Class_Terminate
on error Resume Next
'清除變數及對像
Form.RemoveAll
Set Form = Nothing
File.RemoveAll
Set File = Nothing
oUpFileStream.Close
Set oUpFileStream = Nothing
if Err.number<>0 then OutErr("清除類時發生錯誤!")
End Sub

'分析上傳的數據
Public Sub GetData (MaxSize)
'定義變數
on error Resume Next
if isGetData_=false then
Dim RequestBinDate,sSpace,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo
Dim sFormValue,sFileName
Dim iFindStart,iFindEnd
Dim iFormStart,iFormEnd,sFormName
'代碼開始
If Request.TotalBytes < 1 Then '如果沒有數據上傳
isErr_ = 1
ErrMessage_="沒有數據上傳,這是因為直接提交網址所產生的錯誤!"
OutErr("沒有數據上傳,這是因為直接提交網址所產生的錯誤!!")
Exit Sub
End If
If MaxSize > 0 Then '如果限制大小
If Request.TotalBytes > MaxSize Then
isErr_ = 2 '如果上傳的數據超出限制大小
ErrMessage_="上傳的數據超出限制大小!"
OutErr("上傳的數據超出限制大小!")
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")
if Err.number<>0 then OutErr("創建流對象(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)
'取得每個項目之間的分隔符
sSpace = MidB (RequestBinDate,1, InStrB (1,RequestBinDate,bCrLf)-1)
iStart = LenB(sSpace)
iFormStart = iStart+2
'分解項目
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
'取得表單項目名稱
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,""""&vbCrLf,1)
sFileName = Trim(Mid(sinfo,iFindStart,iFindEnd-iFindStart))
oFileInfo.FileName = GetFileName(sFileName)
oFileInfo.FilePath = GetFilePath(sFileName)
oFileInfo.FileExt = GetFileExt(sFileName)
iFindStart = InStr (iFindEnd,sInfo,"Content-Type: ",1)+14
iFindEnd = InStr (iFindStart,sInfo,vbCr)
oFileInfo.FileMIME = Mid(sinfo,iFindStart,iFindEnd-iFindStart)
oFileInfo.FileStart = iInfoEnd
oFileInfo.FileSize = iFormStart -iInfoEnd -2
oFileInfo.FormName = sFormName
file.add sFormName,oFileInfo
else
'如果是表單項目
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
if Err.number<>0 then OutErr("分解上傳數據時發生錯誤,可能客戶端的上傳數據不正確或不符合上傳數據規則")
RequestBinDate = ""
Set tStream = Nothing
isGetData_=true
end if
End Sub

'保存到文件,自動覆蓋已存在的同名文件
Public Function SaveToFile(Item,Path)
SaveToFile=SaveToFileEx(Item,Path,True)
End Function

'保存到文件,自動設置文件名
Public Function AutoSave(Item,Path)
AutoSave=SaveToFileEx(Item,Path,false)
End Function

'保存到文件,OVER為真時,自動覆蓋已存在的同名文件,否則自動把文件改名保存
Private Function SaveToFileEx(Item,Path,Over)
On Error Resume Next
Dim FileExt
if file.Exists(Item) then
Dim oFileStream
Dim tmpPath
isErr_=0
Set oFileStream = CreateObject ("ADODB.Stream")
oFileStream.Type = 1
oFileStream.Mode = 3
oFileStream.Open
oUpFileStream.Position = File(Item).FileStart
oUpFileStream.CopyTo oFileStream,File(Item).FileSize
tmpPath=Split(Path,".")(0)
FileExt=GetFileExt(Path)
if Over then
if isAllowExt(FileExt) then
oFileStream.SaveToFile tmpPath & "." & FileExt,2
if Err.number<>0 then OutErr("保存文件時出錯,請檢查路徑,是否存在該上傳目錄!該文件保存路徑為" & tmpPath & "." & FileExt)
Else
isErr_=3
ErrMessage_="該後綴名的文件不允許上傳!"
OutErr("該後綴名的文件不允許上傳")
End if
Else
Path=GetFilePath(Path)
dim fori
fori=1
if isAllowExt(File(Item).FileExt) then
do
fori=fori+1
Err.Clear()
tmpPath=Path&GetNewFileName()&"."&File(Item).FileExt
oFileStream.SaveToFile tmpPath
loop Until ((Err.number=0) or (fori>50))
if Err.number<>0 then OutErr("自動保存文件出錯,已經測試50次不同的文件名來保存,請檢查目錄是否存在!該文件最後一次保存時全路徑為"&Path&GetNewFileName()&"."&File(Item).FileExt)
Else
isErr_=3
ErrMessage_="該後綴名的文件不允許上傳!"
OutErr("該後綴名的文件不允許上傳")
End if
End if
oFileStream.Close
Set oFileStream = Nothing
else
ErrMessage_="不存在該對象(如該文件沒有上傳,文件為空)!"
OutErr("不存在該對象(如該文件沒有上傳,文件為空)")
end if
if isErr_=3 then SaveToFileEx="" else SaveToFileEx=GetFileName(tmpPath)
End Function

'取得文件數據
Public Function FileData(Item)
isErr_=0
if file.Exists(Item) then
if isAllowExt(File(Item).FileExt) then
oUpFileStream.Position = File(Item).FileStart
FileData = oUpFileStream.Read (File(Item).FileSize)
Else
isErr_=3
ErrMessage_="該後綴名的文件不允許上傳"
OutErr("該後綴名的文件不允許上傳")
FileData=""
End if
else
ErrMessage_="不存在該對象(如該文件沒有上傳,文件為空)!"
OutErr("不存在該對象(如該文件沒有上傳,文件為空)")
end if
End Function

'取得文件路徑
Public function GetFilePath(FullPath)
If FullPath <> "" Then
GetFilePath = Left(FullPath,InStrRev(FullPath, "\"))
Else
GetFilePath = ""
End If
End function

'取得文件名
Public Function GetFileName(FullPath)
If FullPath <> "" Then
GetFileName = mid(FullPath,InStrRev(FullPath, "\")+1)
Else
GetFileName = ""
End If
End function

'取得文件的後綴名
Public Function GetFileExt(FullPath)
If FullPath <> "" Then
GetFileExt = LCase(Mid(FullPath,InStrRev(FullPath, ".")+1))
Else
GetFileExt = ""
End If
End function

'取得一個不重復的序號
Public Function GetNewFileName()
dim ranNum
dim dtNow
dtNow=Now()
randomize
ranNum=int(90000*rnd)+10000
'以下這段由webboy提供
GetNewFileName=year(dtNow) & right("0" & month(dtNow),2) & right("0" & day(dtNow),2) & right("0" & hour(dtNow),2) & right("0" & minute(dtNow),2) & right("0" & second(dtNow),2) & ranNum
End Function

Public Function isAllowExt(Ext)
if NoAllowExt="" then
isAllowExt=cbool(InStr(1,";"&AllowExt&";",LCase(";"&Ext&";")))
else
isAllowExt=not CBool(InStr(1,";"&NoAllowExt&";",LCase(";"&Ext&";")))
end if
End Function
End Class

Public Sub OutErr(ErrMsg)
if IsDebug_=true then
Response.Write ErrMsg
Response.End
End if
End Sub

'----------------------------------------------------------------------------------------------------
'文件屬性類
Class FileInfo_Class
Dim FormName,FileName,FilePath,FileSize,FileMIME,FileStart,FileExt
End Class

%>
------------------------以下是類的使用說明
無懼上傳類 - UpFile_Class V2.1 使用手冊

作者:梁無懼 http://www.25cn.com [下載]

UpFile_Class 概述
自從用ASP來編寫網站,就無時無刻想找一種兼容性強,使用方便的上傳方法,用過很多的無 組件上傳方法,但是都存在使用不方便,兼容性差,速度慢等的問題。終於在2003年的元旦里,想 到了可以讓上傳文件達到最快的方法,經過10天的努力,整整10個版本的版本的更新,終於完成了第一個「無懼上傳類V1.0」,這個版本與其它的上傳類或方法相比,具有速度快,兼容性強, 使用方便等特點。
經過整整一年,在得到各大網友的支持下,並且在長期使用中針對該版的不足,開發了1.1,1.2等版本,由於為了向下兼容,放棄了很多新的特性,現在,結過審慎考慮,終於在2004年7月10日完成了"無懼上傳類2.0"版,該版相對於前作在安全上作出了最大的改進,在類內部實現了上傳類型的黑白名單,更多方便了各種上傳的環境,即使黑客突破了上傳程序,但是最終在保存文件時會使他的所有努力付之流水,該版在使用上比前作更加方便,更人性化了。由於添加和修改了不少屬性值,在移植上需要作出比較大的修改。

UpFile_Class 公共屬性
File 文件域的集合,是一個Dictionary 對象,返回值一個FileInfo_Class 類。可讀寫。
Form 表單域的集合,是一個Dictionary 對象,返回對應表單域的值。可讀寫。
isErr 返回錯誤的數值。-1表示無錯,1表示沒有上傳數據,2表示上傳超出限制。只讀。
Version 獲取類的版本信息。只讀。
AllowExt 白名單,允許上傳的文件類型,可以在類文件里預設可上傳的文件類型,以文件的後綴名來判斷,不區分大小寫,每個後綴名用「;」號分開。如AllowExt="jpg;rar;zip"。可讀寫。
NoAllowExt 黑名單,不允許上傳的文件類型,可以在類文件里預設不可上傳的文件類型,以文件的後綴名來判斷,不區分大小寫,每個後綴名用「;」號分開。如NoAllowExt="asp;htm;html;js;"。可讀寫
ErrMessage 錯誤信息,在發生錯誤時,可以調用ErrMessage顯示錯誤的字元串信息。只讀。

UpFile_Class 公共方法
GetData(MaxSize As Int64) 分析上傳的數據。MaxSize為限制上傳的位元組,設為-1即不限制大小,此為過程,沒有返回值,調用後調檢查isErr是否大於0。
SaveToFile(Item As String,Path As String) 保存到文件,自動覆蓋已存在的同名文件,Item為表單項名,Path為保存的絕對路徑,返回值為保存的文件名。
AutoSave(Item As String,Path As String) 保存到文件,自動創建文件名以避免重復,Item為表單的名,Path為保存的絕對路徑(可不包含文件名,如e:\wwwroot\upimg\),返回值為保存的文件名。
FileData(Item As String) 取得文件數據,Item為表單項名
GetFilePath(FullPath As String) 返迴文件在路徑,如GetFilePath("c:\a.asp") 返回值為"c:\"。
GetFileName(FullPath As String) 返迴文件名,如GetFileName("c:\a.asp") 返回值為"a.asp"。
GetFileExt(FullPath As String) 返迴文件的後綴名,如GetFileExt("c:\a.asp") 返回值為"asp"。
GetNewFileName() 返回一個以時間種子的不重復數值,可以用作文件名。
isAllowExt(Ext As String) 返回一個真假值指是Ext是否為可上傳的類型,如isAllowExt("jpg")。

UpFile_Class 受保護方法
SaveToFileEx(Item As String,Path As String,Over As bool) 保存到文件,其中Over指示如果文件存在是否覆蓋,如果OVER為真時,文件按PATH來保存,如果OVER為假,則自動調用 GetNewFileName() 生成一個新的不重復的文件名,以上傳時的後綴名保存。

FileInfo_Class 概述
文件信息類,用來存貯上傳的文件信息

FileInfo_Class 公共屬性
FileName 返回上傳的文件名。
FilePath 返回上傳時文件在客戶端的路徑。
FileExt 返迴文件擴展名。
FileMIME 返迴文件MIME類別。
FileSize 返迴文件大小(以位元組為單位)。

Dictionary 對象 請參考VBSCRIPT幫助取得更詳細的屬性和方法

UPFILE_CLASS 特性
版本更新
0.96 第一個公開版本,以新的解析方法達到速度上的一個提升,修改稻香老農的無組件上傳類,以達到完全兼容。

1.0 發現原版中一個無法避免的BUG,會導至黑客利用伺服器在上傳其間會佔用100%CPU資源來達到拒絕服務攻擊,故修改了原來的設用方法,增加一個GetData來在實際上傳數據前對上傳文件的大小進行判斷,防止被上傳超大文件。至於其它的改變,忘掉了。
1.2 修改了1.0中的一些錯誤命名(俺的英語不好),整理部分代碼和加入更多對代碼的注釋。
2.0 更加穩定和更安全,加入了上傳類型的黑白名單,自動保存,修改了文件類中的一個屬性,原為FileType現在改為FileMIME,增加了幾個常用的方法。

使用中的一些問題解答

1、什麼時候用AutoSave和SaveToFile?
AutoSave是自動生成新的文件名以避免與伺服器上的原文件同名,而SaveToFile則是覆蓋存在的文件,所以,如果你上傳的文件需要覆蓋原文件的時候,那麼就調用SaveToFile,如果你上傳的文件不需要覆蓋存在的文件,那麼就調用AutoSave,該函數會返回所保存的文件名。

2、為什麼不提供自全部保存?
我不太相信大家用上傳類時不需要對文件進行處理,那麼提供全部保存與分別保存並沒有什麼太大的區別,在能少不多的情況下,我沒有加入這個功能。

3、為什麼我保存的時候會提示「該類型不允許上傳呢」?我沒有執行判斷啊!
這是因為程序內部進行了判斷,為了防止由於外部調用代碼的BUG而導至判斷上傳類型失效,在內部的保存和取得數據都自動進行了文件類型的判別,如果黑名單存在,則白名單不起作用,這是為了方便一些程序的使用,因為有些時間只需要禁止幾個上傳類型即可,而不需要對每個上傳類型進行判別。

關於網友的一些問題

1、為什麼上傳的時候會出現無效頁?
這是因為IE的BUG所導至的,目前尚沒有更好的解決方法,原理是:當客戶端提交表單時,IE會首先發把上傳的總大小傳到伺服器,而這時伺服器開始執行ASP代碼,當運行到GetData方法時,會首先判斷上傳的總大小是為超過程序預設大小,如果沒有,則開始執行上傳,這時IE才真正開始上傳數據,但是如果上傳的總大小為超過程序預設大小,那麼程序自動放棄讀取並退出執行,這時上傳並沒有真正開始,雖然伺服器返回了錯誤信息給IE,但是IE由於設計當初沒有考慮到伺服器會拒絕表單的上傳,故IE會繼續等待伺服器的上傳回應,由於伺服器已經終止上傳,IE就會以為伺服器沒有響應而出現無效頁的錯誤了。

2、為什麼從1.2馬上升到了2.0?好像代碼改得不多啊!
這是因為大家都喜歡高版本,我巴不得改為7.0呢,那樣大家都會覺得這個版真高級。。。。-_-||

使 用 示 例
上傳文件的表單要加入enctype="multipart/form-data"屬性,即
<form name="form1" method="post" action="" enctype="multipart/form-data">
<input type="text" value="1" name="name">
<input type=file name="img">
<input type=submit name="submit" value="提交">
</form>

在執行上傳的ASP頁
'包含類文件
<!-- #include file="upfile_class.asp" -->
dim upfile
dim SaveFilename
'建立上傳對象
set upfile=new upfile_class
'取得上傳數據,限制最大上傳10M 計算方法為 10240000/1000000=10.24M
upfile.GetData (10240000)
'判決是否出錯
if upfile.isErr then
select case upfile.err
case 1
Response.Write "你沒有上傳數據呀???是不是搞錯了??"
case 2
Response.Write "你上傳的文件超出我們的限制,最大10M"
end select
else
'執行保存文件代碼
upfile.SaveToFile "img","c:\"&upfile.file("img").filename
'執行自動保存文件代碼,SaveFilename為保存的文件名
SaveFilename=upfile.AutoSave("img","c:\")
'銷毀對像
set upfile=nothing
end if

2. asp 如何實現帶進度條的上傳文件功能

以下就以abcupload4為例來說明怎麼來製作實時的文件上傳進度條。

(註:我們在abcupload自帶例子基礎上改進。)

progressupload.htm(上傳文件的前台提交,我們讓進度條在這個裡面顯示)

<HTML>

<body>

<script language="javascript">

<!--

theUniqueID = (new Date()).getTime() % 1000000000;

function s() //讓數據提交的同時執行顯示進度條的函數

{

bar(); //開始執行反映上傳情況的函數

document.myform.action = "progressupload.ASP?ID=" theUniqueID; //處理上傳數據的程序

document.myform.target="up" //將提交的數據放在一個名字是up隱藏的iframe裡面處理,這樣提交的頁面就不會跳轉到處理數據的頁

document.myform.submit(); //提交表單

}

function bar()

{

bar1.style.display=''; //讓顯示上傳進度顯示的層的可見

var timeoutid=null; //這個變數是作定時器的ID

var oXMLDoc = new ActiveXObject('MSXML'); //創建'MSXML'對象

sURL = "progressbar.ASP?ID=" theUniqueID "&temp=" Math.random(); //獲取上傳狀態數據的地址

oXMLDoc.url = sURL; //load數據

var oRoot=oXMLDoc.root; //獲取返回XML數據的根節點

if(oRoot.children != null)

{

if (oRoot.children.item(0).text-100==0) //文件上傳結束就取消定時器

clearTimeout(timeoutid)

PercentDone.style.width=oRoot.children.item(0).text "%"; //設置進度條的百分比例

//根據返回的數據在客戶端顯示

min.innerHTML=oRoot.children.item(1).text; //顯示剩餘時間(分鍾)

secs.innerHTML=oRoot.children.item(2).text; //顯示剩餘時間(秒鍾)

BytesDone.innerHTML=oRoot.children.item(3).text; //已上傳數據大小

BytesTotal.innerHTML=oRoot.children.item(4).text; //總大小

BytesPerSecond.innerHTML=oRoot.children.item(5).text; //傳輸速率

Information.innerHTML=oRoot.children.item(6).text; //上傳信息

}

if (oRoot.children.item(0).text-100<0) //只要文件沒有傳完,就每隔多少時間獲取一次數據

timeoutid = setTimeout("bar()",50) //這里設定時間間隔是0.05秒,你也可以根據你的情況修改獲取數據時間間隔

}

//-->

</script>

<form name="myform" method="post" action="progressupload.ASP" enctype="multipart/form-data" target=up>

<input type="file" name="filefield1"><br>

<input type="button" name="dosubmit" value="Upload" onclick="s()"><br>

<div id=bar1 style="display:none">

<table border="0" width="100%">

<tr>

<td><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>傳送:</b></font></td>

</tr>

<tr bgcolor="#999999">

<td>

<table border="0" width="" cellspacing="1" bgcolor="#0033FF" id=PercentDone>

<tr>

<td><font size=1></font></td>

</tr>

</table>

</td>

</tr>

<tr>

<td>

<table border="0" width="100%">

<tr>

<td><font face="Verdana, Arial, Helvetica, sans-serif" size="1">剩餘時間:</font></td>

<td><font face="Verdana, Arial, Helvetica, sans-serif" size="1">

<span id=min></span> 分

<span id=secs></span> 秒

(<span id=BytesDone></span> KB of

<span id=BytesTotal></span> KB 已上傳)</font></td>

</tr>

<tr>

<td><font face="Verdana, Arial, Helvetica, sans-serif" size="1">

傳送速度:</font></td>

<td><font face="Verdana, Arial, Helvetica, sans-serif" size="1">

<span id=BytesPerSecond></span> KB/秒</font></td>

</tr>

<tr>

<td><font face="Verdana, Arial, Helvetica, sans-serif" size="1">信息:</font></td>

<td><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><span id=Information></span></font></td>

</tr>

</table>

</td>

</tr>

<tr></tr>

</table>

</div>

<iframe name="up" style="display:none"></iframe>

</form>

</body>

</HTML>

progressbar.ASP(返回上傳狀況數據的文件)

<%@EnableSessionState=False%>

<%

On Error Resume Next

Set theProgress = Server.CreateObject("ABCUpload4.XProgress") '創建上傳組件對象

theProgress.ID = Request.QueryString("ID")

'將返回數據以XML格式輸出

%>

<?XML version="1.0" encoding="gb2312" ?>

<plan>

<PercentDone><%=theProgress.PercentDone%></PercentDone>

<min><%=Int(theProgress.SecondsLeft/60)%></min>

<secs><%=theProgress.SecondsLeft Mod 60%></secs>

<BytesDone><%=Round(theProgress.BytesDone / 1024, 1)%></BytesDone>

<BytesTotal><%=Round(theProgress.BytesTotal / 1024, 1)%></BytesTotal>

<BytesPerSecond><%=Round(theProgress.BytesPerSecond/1024, 1)%></BytesPerSecond>

<Information><%=theProgress.Note%></Information>

</plan>

progressupload.ASP(處理上傳文件)

<%@EnableSessionState=False%>

<%

Response.Expires = -10000

Server.ScriptTimeOut = 300

Set theForm = Server.CreateObject("ABCUpload4.XForm")

theForm.Overwrite = True

theForm.MaxUploadSize = 8000000

theForm.ID = Request.QueryString("ID")

Set theField = theForm("filefield1")(1)

If theField.FileExists Then

theField.Save theField.FileName

End If

%>

<HTML>

<body>

傳送結束

</body>

</HTML>

3. asp.net 2.0中如何實現上傳文件與下載文件 用啥控制項和代碼啊

需用到FileUpLoad控制項
#region 文件上傳
/*
if (FileUpload1.HasFile)
{
string type = FileUpload1.PostedFile.ContentType.ToString();
if (type == "image/pjpeg")
{
string path = Server.MapPath("up/");
FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
Response.Write("<script>alert('上傳成功!');</script>");
}
else
Response.Write("<script>alert('請上傳獲得支持的文件類型!');</script>");

}
else
Response.Write("<script>alert('請選擇您要上傳的文件!');</script>");
//*/

熱點內容
伺服器版本更新是什麼意思 發布:2025-07-27 12:25:42 瀏覽:573
安卓畫畫軟體是什麼 發布:2025-07-27 12:25:40 瀏覽:641
python編程入門第3版pdf 發布:2025-07-27 12:25:04 瀏覽:870
唐燃油與h7配置哪個好 發布:2025-07-27 12:24:12 瀏覽:786
上傳圖片兼容ie8 發布:2025-07-27 12:17:45 瀏覽:550
如何配置債券賺錢 發布:2025-07-27 12:17:32 瀏覽:920
安卓主力機備用機選什麼 發布:2025-07-27 12:15:58 瀏覽:873
安卓qgc編譯開發 發布:2025-07-27 12:15:52 瀏覽:453
王者如何刪除不要的伺服器 發布:2025-07-27 12:13:45 瀏覽:605
腳本判斷是否入域 發布:2025-07-27 12:12:15 瀏覽:636