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

asp上傳

發布時間: 2022-01-08 21:09:19

1. 【ASP上傳程序】

依我說 還是用別人做好的類就行了 沒必要搞的那麼明白 你只要會用遙控器就可以了 不需要知道電視的構造 風聲無組件上傳類 還不錯
如果你確定想知道電視是怎麼造的 那就把文件發到我郵箱里吧 當然 我也只是幫你參考參考 不一定能解決你的問題 還望諒解 郵箱 [email protected]

2. asp 上傳

我們用來獲取上一個頁面傳遞過來的數據一般是使用Request對象。同樣的,我們也可以使用Request對象來獲取上傳上來的文件數據,使用的方法是Request.BinaryRead()。而我們要從資料庫中讀出來圖片的數據顯示到網頁上面要用到的方法是:

Request.BinaryWrite()。在我們得到了圖片的數據,要保存到資料庫中的時候,不可以直接使用Insert語句對資料庫進行操作,而是要使用ADO的AppendChunk方法,同樣的,讀出資料庫中的圖片數據,要使用GetChunk方法。各個方法的具體語法如下:

* Request.BinaryRead語法:

variant = Request.BinaryRead(count)
參數

variant

返回值保存著從客戶端讀取到數據。

count

指明要從客戶端讀取的數據量大小,這個值小於或者等於使用方法

Request.TotalBytes得到的數據量。

* Request.BinaryWrite語法:

Request.BinaryWrite data

參數

data

要寫入到客戶端瀏覽器中的數據包。

* Request.TotalBytes語法:

variant = Request.TotalBytes

參數

variant

返回從客戶端讀取到數據量的位元組數。

* AppendChunk語法

將數據追加到大型文本、二進制數據 Field 或 Parameter 對象。

object.AppendChunk Data

參數

object Field 或 Parameter 對象

Data 變體型,包含追加到對象中的數據。

說明

使用 Field 或 Parameter 對象的 AppendChunk 方法可將長二進制或字元數據填寫到對象中。在系統內存有限的情況下,可以使用 AppendChunk 方法對長整型值進行部分而非全部的操作。

* GetChunk語法

返回大型文本或二進制數據 Field 對象的全部或部分內容 。

variable = field.GetChunk( Size )

返回值

返回變體型。

參數

Size 長整型表達式,等於所要檢索的位元組或字元數。

說明

使用 Field 對象的 GetChunk 方法檢索其部分或全部長二進制或字元數據。在系統內存有限的情況下,可使用 GetChunk 方法處理部分而非全部的長整型值。

GetChunk 調用返回的數據將賦給「變數」。如果 Size 大於剩餘的數據,則

GetChunk 僅返回剩餘的數據而無需用空白填充「變數」。如果欄位為空,則

GetChunk 方法返回 Null。

每個後續的 GetChunk 調用將檢索從前一次 GetChunk 調用停止處開始的數據。但是,如果從一個欄位檢索數據然後在當前記錄中設置或讀取另一個欄位的值,ADO 將認為已從第一個欄位中檢索出數據。如果在第一個欄位上再次調用 GetChunk 方法,ADO 將把調用解釋為新的 GetChunk 操作並從記錄的起始處開始讀取。如果其他 Recordset 對象不是首個 Recordset 對象的副本,則訪問其中的欄位不會破壞 GetChunk 操作。如果 Field 對象的 Attributes 屬性中的 adFldLong 位設置為 True,則可以對該欄位使用 GetChunk 方法。如果在 Field 對象上使用 Getchunk 方法時沒有當前記錄,將產生錯誤 3021(無當前記錄)。

3. ASP網頁上傳

比如你的資料庫mydata.mdb放在data文件夾裡面,conn文件路徑可以這么寫:
Const SiteDb = "/Data/mydata.mdb"

發個完整的給你參考下:
<%

function HTMLEncode(fString)
if not isnull(fString) then
fString = replace(fString, ">", ">")
fString = replace(fString, "<", "<")
fString = Replace(fString, CHR(32), "")
fString = Replace(fString, CHR(9), "")
fString = Replace(fString, CHR(34), """)
fString = Replace(fString, CHR(39), "'")
fString = Replace(fString, CHR(13), "")
fString = Replace(fString, CHR(10) & CHR(10), " ")
fString = Replace(fString, CHR(10), " ")
fString=ChkBadWords(fString)
HTMLEncode = fString
end if
end function

function checkStr(str)
if isnull(str) then
checkStr = ""
exit function
end if
checkStr=replace(str,"'","''")
end function
Const SiteDb = "/Data/mydata.mdb"

dim sessionvar
Dim ConnStr
ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(MyDbPath & SiteDb)
on error resume next
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "資料庫連接出錯,請檢查連接字串。"
Response.End
End If
sessionvar="admin&^jffsddasf"
%>

4. asp上傳的代碼怎麼寫

據我所知,上傳的對象有兩種,adodb.stream和fso。。。
我想問的是一個最簡單的上傳代碼是怎樣?請問大家能給我一個adodb.stream和fso的例子嗎?
因為我在網上搜索的代碼都是長篇大論。。。因為小弟是初學者,所以不明白。。。。
上傳文件的代碼需要這么長嗎?

5. asp上傳程序

這個程序是沒有任何漏洞的,要想使用得更好,在上傳時和執行文件都加上許可權那就更安全了,不明白留言給我!

本程序分三個頁面及一個文件夾(UpLoadFile),具體文件代碼如下:

文件一:上傳文件頁面

<table width="670" border="0" align="center" cellpadding="2" cellspacing="1" bgcolor="#999999">
<form action="upload.asp" enctype="multipart/form-data" name="form1" method="post">
<tr bgcolor="#999999">
<td width="180"><font color="#FFFFFF">項目</font></td>
<td align="center"><font color="#FFFFFF">內容</font></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="180">產品名稱</td>
<td>
<input name="strName" type="text" id="strName"> </td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="180">產品圖片</td>
<td>
<input name="strPhoto" type="file" id="strPhoto"> </td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="180">圖片格式:gif/jpg<br>
圖片大小:150K <br>
產品介紹</td>
<td>
<input name="strRemark" cols="45" rows="6" id="strRemark"> </td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="180"> </td>
<td>
<input type="submit" name="Submit" value="提 交">
<input type="reset" name="Submit2" value="重 置"></td>
</tr>
</form>
</table>

文件二:上傳執行數據頁面

<%
OPTION EXPLICIT
Server.ScriptTimeOut=5000
%>
<!--#include FILE="UpLoadClass.asp"-->
<%
dim request2

'建立上傳對象
set request2=New UpLoadClass

'以默認設置打開上傳對象
'建議直接修改類的63,64,65,66行為自己需要的默認設置
'類的初始默認值分別為
'p_MaxSize = 153600 單文件最大150K
'p_FileType = "jpg/gif" 允許上傳jpg/gif格式文件
'p_SavePath = "" 在當前目錄保存文件,這里是相對路徑,如:「UpLoadFile/」
'p_AutoSave = 0 自動生成無重復文件名保存目標文件
'這樣每次就不要設置同樣的參數了
request2.open()
%>
<html>
<head>
<title>快速應用——風聲無組件上傳類</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="basic.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="760" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#FFFFFF" style="border:1px solid #999999">
<tr>
<td><blockquote>
<%
'顯示類版本
response.Write("<br>"&request2.version&"<br>")

'顯示產品名稱
response.Write("<br>產品名稱:"&request2.Form("strName"))

'顯示源文件路徑與名稱
response.Write("<br>產品圖片:"&request2.Form("strPhoto_Path")&request2.Form("strPhoto_Name"))
response.Write("=>")

'顯示目標文件路徑與名稱
response.Write(request2.SavePath&request2.Form("strPhoto"))

'顯示產品介紹
response.Write("<br>產品介紹:"&request2.Form("strRemark"))

'-------說明開始------
'可以看出上面的顯示是淋漓盡致的
'文件是否需要保存由類自動判斷,這已經符合大多數情況下的應用
'如果您需要更靈活的處理,參見[進階應用]
'-------說明結束------

response.write "<br>[<a href=""javascript:history.back();"">返回</a>]"
%>
</blockquote></td>
</tr>
</table>
</body>
</html>
<%
'釋放上傳對象
set request2=nothing
%>

文件三:上傳定義文件

<%
'----------------------------------------------------------
'***************** 風聲無組件上傳類 2.0 *****************
'作者:風聲
'網站:http://www.17560.net http://www.54nb.com
'郵件:[email protected]
'版權:版權全體,源代碼公開,各種用途均可免費使用
'**********************************************************
'----------------------------------------------------------
Class UpLoadClass

Private p_MaxSize,p_FileType,p_SavePath,p_AutoSave,p_Error
Private objForm,binForm,binItem,strDate,lngTime
Public FormItem,FileItem

Public Property Get Version
Version="Rumor UpLoadClass Version 2.0"
End Property

Public Property Get Error
Error=p_Error
End Property

Public Property Get MaxSize
MaxSize=p_MaxSize
End Property
Public Property Let MaxSize(lngSize)
if isNumeric(lngSize) then
p_MaxSize=clng(lngSize)
end if
End Property

Public Property Get FileType
FileType=p_FileType
End Property
Public Property Let FileType(strType)
p_FileType=strType
End Property

Public Property Get SavePath
SavePath=p_SavePath
End Property
Public Property Let SavePath(strPath)
p_SavePath=replace(strPath,chr(0),"")
End Property

Public Property Get AutoSave
AutoSave=p_AutoSave
End Property
Public Property Let AutoSave(byVal Flag)
select case Flag
case 0:
case 1:
case 2:
case false:Flag=2
case else:Flag=0
end select
p_AutoSave=Flag
End Property

Private Sub Class_Initialize
p_Error = -1
p_MaxSize = 1536000 '單個文件大小1.5M
p_FileType = "" '可上傳任意類型文件,jpg/gif/swf
p_SavePath = "UpLoadFile/" '保存文件路徑
p_AutoSave = 1 '用原名保存圖片,0為用時間
strDate = replace(cstr(Date()),"-","")
lngTime = clng(timer()*1000)
Set binForm = Server.CreateObject("ADODB.Stream")
Set binItem = Server.CreateObject("ADODB.Stream")
Set objForm = Server.CreateObject("Scripting.Dictionary")
objForm.CompareMode = 1
End Sub

Private Sub Class_Terminate
objForm.RemoveAll
Set objForm = nothing
Set binItem = nothing
binForm.Close()
Set binForm = nothing
End Sub

Public Sub Open()
if p_Error=-1 then
p_Error=0
else
Exit Sub
end if
Dim lngRequestSize,binRequestData,strFormItem,strFileItem
Const strSplit="'"">"
lngRequestSize=Request.TotalBytes
if lngRequestSize<1 then
p_Error=4
Exit Sub
end if
binRequestData=Request.BinaryRead(lngRequestSize)
binForm.Type = 1
binForm.Open
binForm.Write binRequestData

Dim bCrLf,strSeparator,intSeparator
bCrLf=ChrB(13)&ChrB(10)

intSeparator=InstrB(1,binRequestData,bCrLf)-1
strSeparator=LeftB(binRequestData,intSeparator)

Dim p_start,p_end,strItem,strInam,intTemp,strTemp
Dim strFtyp,strFnam,strFext,lngFsiz
p_start=intSeparator+2
Do
p_end =InStrB(p_start,binRequestData,bCrLf&bCrLf)+3
binItem.Type=1
binItem.Open
binForm.Position=p_start
binForm.CopyTo binItem,p_end-p_start
binItem.Position=0
binItem.Type=2
binItem.Charset="gb2312"
strItem=binItem.ReadText
binItem.Close()

p_start=p_end
p_end =InStrB(p_start,binRequestData,strSeparator)-1
binItem.Type=1
binItem.Open
binForm.Position=p_start
lngFsiz=p_end-p_start-2
binForm.CopyTo binItem,lngFsiz

intTemp=Instr(39,strItem,"""")
strInam=Mid(strItem,39,intTemp-39)

if Instr(intTemp,strItem,"filename=""")<>0 then
if not objForm.Exists(strInam&"_From") then
strFileItem=strFileItem&strSplit&strInam
if binItem.Size<>0 then
intTemp=intTemp+13
strFtyp=Mid(strItem,Instr(intTemp,strItem,"Content-Type: ")+14)
strTemp=Mid(strItem,intTemp,Instr(intTemp,strItem,"""")-intTemp)
intTemp=InstrRev(strTemp,"\")
strFnam=Mid(strTemp,intTemp+1)
objForm.Add strInam&"_Type",strFtyp
objForm.Add strInam&"_Name",strFnam
objForm.Add strInam&"_Path",Left(strTemp,intTemp)
objForm.Add strInam&"_Size",lngFsiz
if Instr(intTemp,strTemp,".")<>0 then
strFext=Mid(strTemp,InstrRev(strTemp,".")+1)
else
strFext=""
end if
if left(strFtyp,6)="image/" then
binItem.Position=0
binItem.Type=1
strTemp=binItem.read(10)
if strcomp(strTemp,chrb(255) & chrb(216) & chrb(255) & chrb(224) & chrb(0) & chrb(16) & chrb(74) & chrb(70) & chrb(73) & chrb(70),0)=0 then
if Lcase(strFext)<>"jpg" then strFext="jpg"
binItem.Position=3
do while not binItem.EOS
do
intTemp = ascb(binItem.Read(1))
loop while intTemp = 255 and not binItem.EOS
if intTemp < 192 or intTemp > 195 then
binItem.read(Bin2Val(binItem.Read(2))-2)
else
Exit do
end if
do
intTemp = ascb(binItem.Read(1))
loop while intTemp < 255 and not binItem.EOS
loop
binItem.Read(3)
objForm.Add strInam&"_Height",Bin2Val(binItem.Read(2))
objForm.Add strInam&"_Width",Bin2Val(binItem.Read(2))
elseif strcomp(leftB(strTemp,8),chrb(137) & chrb(80) & chrb(78) & chrb(71) & chrb(13) & chrb(10) & chrb(26) & chrb(10),0)=0 then
if Lcase(strFext)<>"png" then strFext="png"
binItem.Position=18
objForm.Add strInam&"_Width",Bin2Val(binItem.Read(2))
binItem.Read(2)
objForm.Add strInam&"_Height",Bin2Val(binItem.Read(2))
elseif strcomp(leftB(strTemp,6),chrb(71) & chrb(73) & chrb(70) & chrb(56) & chrb(57) & chrb(97),0)=0 or strcomp(leftB(strTemp,6),chrb(71) & chrb(73) & chrb(70) & chrb(56) & chrb(55) & chrb(97),0)=0 then
if Lcase(strFext)<>"gif" then strFext="gif"
binItem.Position=6
objForm.Add strInam&"_Width",BinVal2(binItem.Read(2))
objForm.Add strInam&"_Height",BinVal2(binItem.Read(2))
elseif strcomp(leftB(strTemp,2),chrb(66) & chrb(77),0)=0 then
if Lcase(strFext)<>"bmp" then strFext="bmp"
binItem.Position=18
objForm.Add strInam&"_Width",BinVal2(binItem.Read(4))
objForm.Add strInam&"_Height",BinVal2(binItem.Read(4))
end if
end if
objForm.Add strInam&"_Ext",strFext
objForm.Add strInam&"_From",p_start
intTemp=GetFerr(lngFsiz,strFext)
if p_AutoSave<>2 then
objForm.Add strInam&"_Err",intTemp
if intTemp=0 then
if p_AutoSave=0 then
strFnam=GetTimeStr()
if strFext<>"" then strFnam=strFnam&"."&strFext
end if
binItem.SaveToFile Server.MapPath(p_SavePath&strFnam),2
objForm.Add strInam,strFnam
end if
end if
else
objForm.Add strInam&"_Err",-1
end if
end if
else
binItem.Position=0
binItem.Type=2
binItem.Charset="gb2312"
strTemp=binItem.ReadText
if objForm.Exists(strInam) then
objForm(strInam) = objForm(strInam)&","&strTemp
else
strFormItem=strFormItem&strSplit&strInam
objForm.Add strInam,strTemp
end if
end if

binItem.Close()
p_start = p_end+intSeparator+2
loop Until p_start+3>lngRequestSize
FormItem=split(strFormItem,strSplit)
FileItem=split(strFileItem,strSplit)
End Sub

Private Function GetTimeStr()
lngTime=lngTime+1
GetTimeStr=strDate&lngTime
End Function

Private Function GetFerr(lngFsiz,strFext)
dim intFerr
intFerr=0
if lngFsiz>p_MaxSize and p_MaxSize>0 then
if p_Error=0 or p_Error=2 then p_Error=p_Error+1
intFerr=intFerr+1
end if
if Instr(1,LCase("/"&p_FileType&"/"),LCase("/"&strFext&"/"))=0 and p_FileType<>"" then
if p_Error<2 then p_Error=p_Error+2
intFerr=intFerr+2
end if
GetFerr=intFerr
End Function

Public Function Save(Item,strFnam)
Save=false
if objForm.Exists(Item&"_From") then
dim intFerr,strFext
strFext=objForm(Item&"_Ext")
intFerr=GetFerr(objForm(Item&"_Size"),strFext)
if objForm.Exists(Item&"_Err") then
if intFerr=0 then
objForm(Item&"_Err")=0
end if
else
objForm.Add Item&"_Err",intFerr
end if
if intFerr<>0 then Exit Function
if VarType(strFnam)=2 then
select case strFnam
case 0:strFnam=GetTimeStr()
if strFext<>"" then strFnam=strFnam&"."&strFext
case 1:strFnam=objForm(Item&"_Name")
end select
end if
binItem.Type = 1
binItem.Open
binForm.Position = objForm(Item&"_From")
binForm.CopyTo binItem,objForm(Item&"_Size")
binItem.SaveToFile Server.MapPath(p_SavePath&strFnam),2
binItem.Close()
if objForm.Exists(Item) then
objForm(Item)=strFnam
else
objForm.Add Item,strFnam
end if
Save=true
end if
End Function

Public Function GetData(Item)
GetData=""
if objForm.Exists(Item&"_From") then
if GetFerr(objForm(Item&"_Size"),objForm(Item&"_Ext"))<>0 then Exit Function
binForm.Position = objForm(Item&"_From")
GetData=binFormStream.Read(objForm(Item&"_Size"))
end if
End Function

Public Function Form(Item)
if objForm.Exists(Item) then
Form=objForm(Item)
else
Form=""
end if
End Function

Private Function BinVal2(bin)
dim lngValue,i
lngValue = 0
for i = lenb(bin) to 1 step -1
lngValue = lngValue *256 + ascb(midb(bin,i,1))
next
BinVal2=lngValue
End Function

Private Function Bin2Val(bin)
dim lngValue,i
lngValue = 0
for i = 1 to lenb(bin)
lngValue = lngValue *256 + ascb(midb(bin,i,1))
next
Bin2Val=lngValue
End Function

End Class
%>

6. ASP上傳代碼

Asp無組件生成縮略圖

網上有不少生成縮略圖的ASP組件。若你的虛擬空間不支持注冊新組件,可能會感覺自己的網站失色不少。心晴不才,結合網上資源寫了個無組件生成縮略圖程序,僅供參考。

還是先看看基礎部分吧。首先,我們知道在頁面中顯示圖片是如下代碼:

<img src="pic.gif" border="0" width="300" height="260">

src是圖片路徑,border控制圖片邊緣寬度,width是圖片的長度,height是圖片的高度。縮略圖的生成其實就是在原始尺寸上縮放。但一般為了盡量少失真,我們都會按比例縮放。於是,獲取圖片的長寬尺寸也就成了生成縮略圖的重點。

下面便是編寫無組件生成縮略圖的步驟:

1.無組件獲取圖片大小

以前剛學ASP不久時看到過一篇利用ASCII碼實現無組件獲取圖片尺寸的文章。後來試了試,發現在獲取jpg類圖片尺寸時總是不能正確顯示,在網上查了查,居然有不少網站轉載這個程序,但沒有一家指出此程序的缺陷,也就更談不上解決缺陷的辦法了。後來又google了一下,終於找到了一篇介紹利用ADODB.stream獲取圖片尺寸的文章,按其介紹的方法,修改裡面的代碼試了試,效果真的還不錯,現在將其拿出來與大家分享:

利用ADODB.stream獲取圖片尺寸的通用類

<%
'//////////// GPS:Get Picture Size //////////////
'//////////////利用ADODB.stream獲取圖片尺寸//////////////
'/////////Cited By Leon(心晴) 2005年8月11日//////////

Class GPS
Dim aso

Private Sub Class_Initialize
Set aso=CreateObject("Adodb.Stream")
aso.Mode=3
aso.Type=1
aso.Open
End Sub

Private Sub Class_Terminate
set aso=nothing
End Sub

Private Function Bin2Str(Bin)
Dim I, Str
For I=1 to LenB(Bin)
clow=MidB(Bin,I,1)
if AscB(clow)<128 then
Str = Str & Chr(ASCB(clow))
Else
I=I+1
if I <= LenB(Bin) then Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow))
end If
Next
Bin2Str = Str
End Function

Private Function Num2Str(num,base,lens)
'GPS (2005-8-11)
dim ret
ret = ""
while(num>=base)
ret = (num mod base) & ret
num = (num - num mod base)/base
wend
Num2Str = right(string(lens,"0") & num & ret,lens)
End Function

Private Function Str2Num(str,base)
'GPS (2005-8-11)
dim ret
ret = 0
for i=1 to len(str)
ret = ret *base + cint(mid(str,i,1))
next
Str2Num=ret
End Function

Private Function BinVal(bin)
'GPS (2002-8-11)
dim ret
ret = 0
for i = lenb(bin) to 1 step -1
ret = ret *256 + ascb(midb(bin,i,1))
next
BinVal=ret
End Function

Private Function BinVal2(bin)
'GPS (2002-8-11)
dim ret
ret = 0
for i = 1 to lenb(bin)
ret = ret *256 + ascb(midb(bin,i,1))
next
BinVal2=ret
End Function

'///以下是調用代碼///
Function getImageSize(filespec)
'GPS (2002-8-11)
dim ret(3)
aso.LoadFromFile(filespec)
bFlag=aso.read( 還有疑問請扣 KISS 844476679如果對我的回答滿意請採納

7. asp如何實現文件上傳功能

基本原理是:採用ADO Stream對象的BinaryRead方法將FORM中的所有數據讀出,從中截取出所需的文件數據,以二進制文件方式存檔。

下面是上傳文件頁面的一個例子:

<html>

<body>

<form name="Upload" Method="Post" Enctype="multipart/form-data" Action="Upload.asp">

<input type="file" name="FileName">

<INPUT TYPE="Submit" VALUE="Upload"></TD>

</form>

</body>

</html>

(7)asp上傳擴展閱讀

幾種文件上傳技術的比較

1、基於HTTP協議

該方法需要編程者利用第三方軟體,如DELPHI、VB等,在應用程序中先進行HTTP協議編程,然後將待上傳文件內容按HTTP協議的格式打包,最後向WEB伺服器發送上傳的請求報文,從而實現文件的上傳。

因為DELPHI和VB不能編寫完整的WEB網路程序,只能編寫WEB小應用程序,因此,該方法只用於功能受限的網路應用。

2、基於VB(或DELPHI等)開發的文件上傳組件

該方法利用VB(或DELPHI等編程語言)開發ASP伺服器組件,實現特定的文件上傳服務。它首先利用ASP表單功能將文件(二進制格式)從用戶端上傳到伺服器端,然後使用VB開發的組件,對二進制文件進行處理,成為可以正常讀寫的文件。

該方法要求編程者不僅掌握ASP語言,而且還能利用VB等第三方語言進行組件編程,增加了開發的難度。

3、基於資料庫技術

該方法和上個方法有類似之處。不同的地方在於對上傳的二進制文件的處理上。它使用資料庫來保存二進制文件。無論是小型資料庫還是大型資料庫都提供了存儲二進制數據的數據類型,只要以Append Chunk方式將數據存入相應的欄位就可以了。

該方法雖然簡單可行,但是因為每次上傳的文件大小都是不一樣的,因此,會對資料庫的空間造成很大的浪費,降低了數據的訪問速度;並且使得文件只能在資料庫環境下進行訪問,造成了很大的不便。

8. 求asp上傳文件代碼

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%

dim upfile_5xSoft_Stream
Class upload_5xSoft
dim Form,File,Version
Dim ReName '改名後的文件名 whyslr add at 05.1.21
Private Sub Class_Initialize
dim iStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,theFile
dim strDiv,mFormName,mFormValue,mFileName,mFileSize,mFilePath,iDivLen,mStr
Version=" cjlaicyh上傳程序 V 1.0"
if Request.TotalBytes<1 then Exit Sub
set Form=CreateObject("Scripting.Dictionary")
set File=CreateObject("Scripting.Dictionary")
set upfile_5xSoft_Stream=CreateObject("Adodb.Stream")
upfile_5xSoft_Stream.mode=3
upfile_5xSoft_Stream.type=1
upfile_5xSoft_Stream.open
upfile_5xSoft_Stream.write Request.BinaryRead(Request.TotalBytes)

vbEnter=Chr(13)&Chr(10)
iDivLen=inString(1,vbEnter)+1
strDiv=subString(1,iDivLen)
iFormStart=iDivLen
iFormEnd=inString(iformStart,strDiv)-1
while iFormStart < iFormEnd
iStart=inString(iFormStart,"name=""")
iEnd=inString(iStart+6,"""")
mFormName=subString(iStart+6,iEnd-iStart-6)
iFileNameStart=inString(iEnd+1,"filename=""")
if iFileNameStart>0 and iFileNameStart<iFormEnd then
iFileNameEnd=inString(iFileNameStart+10,"""")
mFileName=subString(iFileNameStart+10,iFileNameEnd-iFileNameStart-10)
iStart=inString(iFileNameEnd+1,vbEnter&vbEnter)
iEnd=inString(iStart+4,vbEnter&strDiv)
if iEnd>iStart then
mFileSize=iEnd-iStart-4
else
mFileSize=0
end if
ReName = fixedFileName(right(getFileName(mFileName),4))'重命名文件whyslr add at 05.1.21
set theFile=new FileInfo
theFile.FileName=getFileName(mFileName)
theFile.FilePath=getFilePath(mFileName)
theFile.FileSize=mFileSize
theFile.FileStart=iStart+4
theFile.FormName=FormName
file.add mFormName,theFile
else
iStart=inString(iEnd+1,vbEnter&vbEnter)
iEnd=inString(iStart+4,vbEnter&strDiv)

if iEnd>iStart then
mFormValue=subString(iStart+4,iEnd-iStart-4)
else
mFormValue=""
end if
if form.Exists(mFormName) then'避免讀取多選表單列表時出錯whyslr modify at 05.1.21
old_Value = form(mFormName)
form.Remove(mFormName)
form.Add mFormName,old_Value & "," & mFormValue
else
form.Add mFormName,mFormValue
end if
end if

iFormStart=iformEnd+iDivLen
iFormEnd=inString(iformStart,strDiv)-1
wend
End Sub

Private Function subString(theStart,theLen)
dim i,c,stemp
upfile_5xSoft_Stream.Position=theStart-1
stemp=""
for i=1 to theLen
if upfile_5xSoft_Stream.EOS then Exit for
c=ascB(upfile_5xSoft_Stream.Read(1))
If c > 127 Then
if upfile_5xSoft_Stream.EOS then Exit for
stemp=stemp&Chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c)))
i=i+1
else
stemp=stemp&Chr(c)
End If
Next
subString=stemp
End function

Private Function inString(theStart,varStr)
dim i,j,bt,theLen,str
InString=0
Str=toByte(varStr)
theLen=LenB(Str)
for i=theStart to upfile_5xSoft_Stream.Size-theLen
if i>upfile_5xSoft_Stream.size then exit Function
upfile_5xSoft_Stream.Position=i-1
if AscB(upfile_5xSoft_Stream.Read(1))=AscB(midB(Str,1)) then
InString=i
for j=2 to theLen
if upfile_5xSoft_Stream.EOS then
inString=0
Exit for
end if
if AscB(upfile_5xSoft_Stream.Read(1))<>AscB(MidB(Str,j,1)) then
InString=0
Exit For
end if
next
if InString<>0 then Exit Function
end if
next
End Function

Private Sub Class_Terminate
form.RemoveAll
file.RemoveAll
set form=nothing
set file=nothing
upfile_5xSoft_Stream.close
set upfile_5xSoft_Stream=nothing
End Sub

Private function GetFilePath(FullPath)
If FullPath <> "" Then
GetFilePath = left(FullPath,InStrRev(FullPath, "\"))
Else
GetFilePath = ""
End If
End function

Private function GetFileName(FullPath)
If FullPath <> "" Then
GetFileName = mid(FullPath,InStrRev(FullPath, "\")+1)
Else
GetFileName = ""
End If
End function

Private function toByte(Str)
dim i,iCode,c,iLow,iHigh
toByte=""
For i=1 To Len(Str)
c=mid(Str,i,1)
iCode =Asc(c)
If iCode<0 Then iCode = iCode + 65535
If iCode>255 Then
iLow = Left(Hex(Asc(c)),2)
iHigh =Right(Hex(Asc(c)),2)
toByte = toByte & chrB("&H"&iLow) & chrB("&H"&iHigh)
Else
toByte = toByte & chrB(AscB(c))
End If
Next
End function

private function fixedFileName(file_Ext)'將文件改名whyslr add at 05.1.21
Dim temp_STR,randomize_Num
temp_STR = ""
randomize
randomize_Num = (cint(9999*rnd()) + 100)
tempSTR = replace(now()," ","")
tempSTR = replace(tempSTR,"-","")
tempSTR = replace(tempSTR,"上午","")
tempSTR = replace(tempSTR,"下午","")
tempSTR = replace(ucase(tempSTR),"AM","")
tempSTR = replace(ucase(tempSTR),"PM","")
tempSTR = replace(ucase(tempSTR),"GTS","")
tempSTR = replace(tempSTR,":","")
fixedFileName = tempSTR & randomize_Num & file_Ext
end function
End Class

Class FileInfo
dim FormName,FileName,FilePath,FileSize,FileStart,isSafe
Private Sub Class_Initialize
FileName = ""
FilePath = ""
FileSize = 0
FileStart= 0
FormName = ""
End Sub

public function SaveAs(FullPath)
dim dr,ErrorChar,i
SaveAs=1
if trim(fullpath)="" or FileSize=0 or FileStart=0 or FileName="" then exit function
if FileStart=0 or right(fullpath,1)="/" then exit function
set dr=CreateObject("Adodb.Stream")
dr.Mode=3
dr.Type=1
dr.Open
upfile_5xSoft_Stream.position=FileStart-1
upfile_5xSoft_Stream.to dr,FileSize
dr.SaveToFile FullPath,2
dr.Close
set dr=nothing
isSafe = chk_Safe(fullpath) '如果你的空間不支持fso請將這行注釋掉、不然保存文件時會出錯whyslr add at 05.1.21
SaveAs=0
end function

private Function chk_Safe(filePath)'檢查上傳過來的是否是asp文件whyslr add at 05.1.21
Dim str
Dim fsoObject
Dim fileObject
set fsoObject = server.CreateObject("scripting.filesystemobject")
set fileObject = fsoObject.openTextFile(filePath,1,0)

if isObject(fileObject) then
do while not fileObject.AtEndOfStream
str = fileObject.ReadAll
Loop
end if
fileObject.close()
set fileObject = nothing

if instr(server.HTMLEncode(str),"<%") > 0 and instr(server.HTMLEncode(str),"%>") > 0 and fsoObject.fileExists(filePath) then
fsoObject.deleteFile filePath,true
chk_Safe = false
else
chk_Safe = true
end if
set fsoObject = nothing

end function
End Class
%>
<html>
<head> <%
dim FileName
set FileName=Request.Cookies("UserId")
if FileName="" then
response.write "帳號不存在[ <a href=# onclick=history.go(-1)>返回</a> ]"
else
dim upload,file,formName,formPath
set upload=new upload_5xSoft ''建立上傳對象
formPath=upload.form("filepath") ''在目錄後加(/)
if right(formPath,1)<>"/" then formPath=formPath&"/"
for each formName in upload.file ''列出所有上傳了的文件
set file=upload.file(formName) ''生成一個文件對象
if file.filesize<10 or file.filesize>200*1000 then
response.write "<font size=9>請先選擇200K以下的圖片文件 [ <a href=# onclick=history.go(-1)>重新上傳</a> ]</font>"
response.end
else
file.SaveAs Server.mappath("..\UserImages\"& FileName &".jpg")'file.FileName) ''保存文件
response.write"<meta http-equiv='refresh' content='0;url=UserSet.asp'>"'redirect "UserSet.asp"'"<font size=2>頭像修改成功 [ <a href=fileup.asp>返回</a> ]</font>"
end if
set file=nothing
next
set upload=nothing
end if
%>

<title>文件上傳</title>
</head>
<body>

</body>
</html>

9. ASP文件上傳

<%
return=chrB(13)&chrB(10)'構造一個回車換行符號
aa=request.BinaryRead(request.TotalBytes)

set st1=server.CreateObject("adodb.stream")
st1.mode=3
st1.type=1
st1.open
st1.write aa

'LeftB LeftB函數從字元串的起始處提取指定數目的位元組
divider=leftB(aa,clng(instrb(aa,return))-1)'使用 CInt 或 CLng 函數強制進行整數運算
datastart=instrb(aa,return&return)
'result = InStrB( [起始位置], 源字元串, 要查找的字元串 )
dataend=instrb(datastart,aa,divider)
set st2 = Server.CreateObject("adodb.stream")
st2.Type = 1
st2.Mode =3
st2.Open
st1.position=datastart+3
st1.to st2, dataend-datastart-6
'---------------------------------------
ii1=instrb(1,aa,en)
dd1=instrb(ii1,aa,en&en)
cc1=midb(aa,ii1,dd1-ii1)
'-----------------------------------
set st3 = server.CreateObject("adodb.stream")
st3.mode=3
st3.type=2
st3.open
st3.writetext cc1 '將文本裝入對象
st3.position=0
st3.charset="gb2312"
st3.position=2

bstr=st3.readtext()'讀取指定長度的文本,不指定將讀取全部
startpos=instrrev(bstr,"\")+1'instrrev返回某字元串在另一個字元串中最後出現的位置
posend=instrrev(bstr,"""")
jg=mid(bstr,startpos,posend-startpos)
st2.savetofile server.MapPath("./chen/") & "/" & jg,2
response.Write("您所上傳的文件為:" & jg)
st1.close
st2.close
st3.close
set st1=nothing
set st2=nothing
set st3=nothing
%>

靜態頁
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>無標題文檔</title>
</head>

<body>
<form name="form1" enctype="multipart/form-data" method="post" action="11.asp">
<label>
<input type="file" name="fileField" id="fileField">
</label>
<label>
<input type="submit" name="button" id="button" value="提交">
</label>
</form>
</body>
</html>

10. ASP網站文件上傳

index.htm index.asp default.htm default.asp 一般是這幾個

熱點內容
演算法掃 發布:2024-12-27 10:27:33 瀏覽:28
臨時配置文件怎麼也刪除不了 發布:2024-12-27 10:22:08 瀏覽:483
java資料庫表格數據 發布:2024-12-27 10:22:06 瀏覽:728
招商網站源碼 發布:2024-12-27 09:55:22 瀏覽:696
雅閣混動版適合買哪個配置 發布:2024-12-27 09:43:53 瀏覽:470
如何給qq空間加密碼是什麼 發布:2024-12-27 09:43:08 瀏覽:228
c語言動圖 發布:2024-12-27 09:31:05 瀏覽:637
天天酷跑ios腳本下載 發布:2024-12-27 09:27:44 瀏覽:543
如何用花生殼搭建伺服器 發布:2024-12-27 09:09:49 瀏覽:514
python簡單 發布:2024-12-27 08:59:12 瀏覽:562