當前位置:編程學習大全網 - 源碼下載 - 圖片上傳的ASP源代碼

圖片上傳的ASP源代碼

4個文件實現無組件上傳4個文件實現無組件上傳

嵌套式調用:

<iframe name="ad" frameborder=0 width=100% height=50 scrolling=no src=uploada.asp></iframe>

直接鏈接:uploada.asp

文件保存路徑:upload

上傳文件類型和大小自己設置

===========================================

第壹個文件:inc/confing.asp(inc為文件夾名稱)

<%

Const EnableUploadFile="Yes" '是否開放文件上傳

Const MaxFileSize=200 '上傳文件大小限制

Const UpFileType="gif|jpg|bmp|png|swf|doc|txt|rar|zip" '允許的上傳文件類型

%>

===========================================

第二個文件:inc/upload.asp

dim oUpFileStream

Class upload_file

dim Form?File?Version

Private Sub Class_Initialize

'定義變量

dim RequestBinDate?sStart?bCrLf?sInfo?iInfoStart?iInfoEnd?tStream?iStart?oFileInfo

dim iFileSize?sFilePath?sFileType?sFormvalue?sFileName

dim iFindStart?iFindEnd

dim iFormStart?iFormEnd?sFormName

'代碼開始

Version="無組件上傳類 Version 0.96"

set Form = Server.CreateObject("scripting.Dictionary")

set File = Server.CreateObject("scripting.Dictionary")

if Request.TotalBytes < 1 then Exit Sub

set tStream = Server.CreateObject("adodb.stream")

set oUpFileStream = Server.CreateObject("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)

'取得每個項目之間的分隔符

sStart = MidB(RequestBinDate?1? InStrB(1?RequestBinDate?bCrLf)-1)

iStart = LenB (sStart)

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?sStart)-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

'取得文件屬性

iFindStart = InStr(iFindEnd?sInfo?"filename="""?1)+10

iFindEnd = InStr(iFindStart?sInfo?""""?1)

sFileName = 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.FileType = 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

form.Add sFormName?sFormvalue

end if

tStream.Close

iFormStart = iFormStart+iStart+2

'如果到文件尾了就退出

loop until (iFormStart+2) = iFormEnd

RequestBinDate=""

set tStream = nothing

End Sub

Private Sub Class_Terminate

'清除變量及對像

if not Request.TotalBytes<1 then

oUpFileStream.Close

set oUpFileStream =nothing

end if

Form.RemoveAll

File.RemoveAll

set Form=nothing

set File=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 GetFileExt(FullPath)

If FullPath <> "" Then

GetFileExt = mid(FullPath?InStrRev(FullPath? ".")+1)

Else

GetFileExt = ""

End If

End function

End Class

'文件屬性類

Class FileInfo

dim FormName?FileName?FilePath?FileSize?FileType?FileStart?FileExt

Private Sub Class_Initialize

FileName = ""

FilePath = ""

FileSize = 0

FileStart= 0

FormName = ""

FileType = ""

FileExt = ""

End Sub

'保存文件方法

Public function SaveToFile(FullPath)

dim oFileStream?ErrorChar?i

SaveToFile=1

if trim(fullpath)="" or right(fullpath?1)="/" then exit function

set oFileStream=CreateObject("Adodb.Stream")

oFileStream.Type=1

oFileStream.Mode=3

oFileStream.Open

oUpFileStream.position=FileStart

oUpFileStream.copyto oFileStream?FileSize

oFileStream.SaveToFile FullPath?2

oFileStream.Close

set oFileStream=nothing

SaveToFile=0

end function

End Class

%>

========================================

第三個文件:uploada.asp

<!--#include file="Inc/config.asp"-->

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<style type="text/css">

<!--

BODY{

BACKGROUND-COLOR: #f5feed;

font-size:9pt

}

.tx1 { height: 20px;font-size: 9pt; border: 1px solid; border-color: #000000; color: #0000FF}

-->

</style>

<link href="Manage/Inc/ManageMent.css" rel="stylesheet" type="text/css">

</head>

<body leftmargin="0" topmargin="0">

<%

if EnableUploadFile="Yes" then

%>

<form action="upfilea.asp" method="post" name="form1" enctype="multipart/form-data">

<input name="FileName" type="FILE" class="tx1" size="20">

<input type="submit" name="Submit" value="上傳" style="border:1px double rgb(88?88?88);font:9pt">

</form>

<%

end if

%>

</body>

</html>

============================

第四個文件:upfilea.asp

<!--#include file="Inc/config.asp"-->

<!--#include file="Inc/upload.asp"-->

<%

const upload_type=0 '上傳方法:0=無懼無組件上傳類,1=FSO上傳 2=lyfupload,3=aspupload,4=chinaaspupload

dim upload?file?formName?SavePath?filename?fileExt

dim upNum

dim EnableUpload

dim Forumupload

dim ranNum

dim uploadfiletype

dim msg?founderr

msg=""

founderr=false

EnableUpload=false

SavePath = "Upload" '存放上傳文件的目錄

if right(SavePath?1)<>"/" then SavePath=SavePath&"/" '在目錄後加(/)

%>

<%

ComeinSTR=lcase(request.servervariables("HTTP_HOST"))

Url=split(ComeinSTR)

yourthing=Url(0)

%>

<html>

<head>

<link href="Manage/Inc/ManageMent.css" rel="stylesheet" type="text/css">

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

</head>

<body>

<%

if EnableUploadFile="NO" then

response.write "系統未開放文件上傳功能"

else

select case upload_type

case 0

call upload_0() '使用化境無組件上傳類

case else

end select

end if

%>

</body>

</html>

<%

sub upload_0() '使用化境無組件上傳類

set upload=new upload_file '建立上傳對象

for each formName in upload.file '列出所有上傳了的文件

set file=upload.file(formName) '生成壹個文件對象

if file.filesize<100 then

msg="請先選擇妳要上傳的文件!"

founderr=true

end if

if file.filesize>(MaxFileSize*1024) then

msg="文件大小超過了限制,最大只能上傳" & CStr(MaxFileSize) & "K的文件!"

founderr=true

end if

fileExt=lcase(file.FileExt)

Forumupload=split(UpFileType?"|")

for i=0 to ubound(Forumupload)

if fileEXT=trim(Forumupload(i)) then

EnableUpload=true

exit for

end if

next

if fileEXT="asp" or fileEXT="asa" or fileEXT="aspx" then

EnableUpload=false

end if

if EnableUpload=false then

'msg="這種文件類型不允許上傳!\n\n只允許上傳這幾種文件類型:" & UpFileType

response.write"<script language=javascript>alert('這種文件類型不允許上傳!\n\n只允許上傳這幾種文件類型:" &

UpFileType & "');"

response.write"javascript:history.go(-1)</script>"

founderr=true

end if

strJS="<script language=javascript>" & vbcrlf

if founderr<>true then

randomize

ranNum=int(900*rnd)+100

filename=SavePath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt

file.SaveToFile Server.mappath(FileName) '保存文件

msg="上傳文件成功!"

FileType=right(fileExt?3)

select case FileType

case "jpg"?"gif"?"png"?"bmp"

case "swf"

case else

strJS=strJS & "range.text=' 點擊瀏覽該文件';" & vbcrlf

end select

end if

strJS=strJS & "alert('" & msg & "');" & vbcrlf

strJS=strJS & "</script>"

response.write strJS

response.write "圖片上傳成功!文件路徑是 /" & filename & "<br>"

response.write "http://";; & yourthing & "/" & filename & "<br>"

set file=nothing

next

set upload=nothing

end sub

%>

  • 上一篇:linux 系統mysql 服務器內存利用率很高了怎麽解決
  • 下一篇:Arduino和51單片機,兩者有什麽關系或區別?
  • copyright 2024編程學習大全網