asp上传图片代码

<form action="upload.asp" method="post" enctype="multipart/form-data">
<input type="file" id="file1" name="file1" /><input name="" type="submit" value="保存编辑" />
</form> 



upload.asp
---------------------------------------------------------------------------------------------

<!--连接数据库-->
<!--#include file="conn.asp"-->
<!--连接上传页-->
<!--#include file="UpLoad_Class.asp"-->
<%
dim upload
set upload = new AnUpLoad
upload.Exe = "jpg|bmp|jpeg|gif|png|sql|txt"
upload.MaxSize = 3 * 1024 * 1024 
upload.GetData()
if upload.ErrorID>0 then 
response.Write upload.Description
else
dim ggid,miaoshu,url,kstime,jstime,laiyuan,pic_url0
ggid=upload.forms("id")
miaoshu=upload.forms("miaoshu")
url=upload.forms("url")
kstime=upload.forms("kstime")
jstime=upload.forms("jstime")
laiyuan=upload.forms("laiyuan")
pic_url0=upload.forms("pic_url0")




dim file,savpath,d
d=date()
savepath = "../upload"&"/"&year(d)&"-"&month(d)&"-"&day(d)
set file = upload.files("file1")
if file.isfile then
result = file.saveToFile(savepath,0,true)
if result then
response.Write "文件'" & file.LocalName & "'上传成功,保存位置'" & (savepath & "/" & file.filename) & "',文件大小" & file.size & "字节"
pic_url=savepath & "/" & file.filename
else
response.Write file.Exception
end if
end if
end if
set upload = nothing    




'response.write "<br />pic1="& pic_url

   
 
 'Response.write ggid

exec="select * from gg_pic where id="&ggid
'response.write "<br />exec="& exec
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,3


rs("url")=url
rs("miaoshu")=miaoshu
rs("kstime")=kstime
rs("jstime")=jstime

pic_url
if pic_url="" then
rs("pic_url")=pic_url0
else
rs("pic_url")=pic_url
end if


'response.write "<br />pic2="& miaoshu
rs.update
rs.close
set rs=nothing
conn.close
set conn=nothing
'response.redirect "bianji_gg.asp?id="&ggid&"&tt=ok"
response.redirect laiyuan
%>
 
 
 
 
 
 
 
 
 

UpLoad_Class.asp
---------------------------------------------------------------------------------------------


<%
'=========================================================
 'Class: AnUpLoad
 'Author: Anlige
 'Version:AienAspUpload V13.12.09
 'CreationDate: 2008-04-12
 'ModificationDate: 2013-12-09
 'Homepage: http://dev.mo.cn
 'Email: zhanghuiguoanlige@126.com
 'QQ: 1034555083
'=========================================================
Dim StreamT
Class AnUpLoad  Private Form, Fils  Private vCharSet, vMaxSize, vSingleSize, vErr, vVersion, vTotalSize, vExe, vErrExe,vboundary, vLostTime, vMode, vFileCount,StreamOpened  private vMuti,vServerVersion  Public Property Let Mode(ByVal value)  vMode = value  End Property    Public Property Let MaxSize(ByVal value)  vMaxSize = value  End Property    Public Property Let SingleSize(ByVal value)  vSingleSize = value  End Property    Public Property Let Exe(ByVal value)  vExe = LCase(value)  vExe = replace(vExe,"*.","")  vExe = replace(vExe,";","|")  End Property    Public Property Let CharSet(ByVal value)  vCharSet = value  End Property    Public Property Get ErrorID()  ErrorID = vErr  End Property    Public Property Get FileCount()  FileCount = Fils.count  End Property    Public Property Get Description()  Description = GetErr(vErr)  End Property    Public Property Get Version()  Version = vVersion  End Property    Public Property Get TotalSize()  TotalSize = vTotalSize  End Property    Public Property Get LostTime()  LostTime = vLostTime  End Property    Private Sub Class_Initialize()  set Form = server.createobject("Scripting.Dictionary")  set Fils = server.createobject("Scripting.Dictionary")  Set StreamT = server.CreateObject("Adodb.stream")  vVersion = "AienAspUpload V13.12.09"  vMaxSize = -1  vSingleSize = -1  vErr = -1  vExe = ""  vTotalSize = 0  vCharSet = "gb2312"  vMode = 0  StreamOpened=false  vMuti="_" & Getname() & "_"  vServerVersion = 6.0  Dim t_  t_ = lcase(Request.ServerVariables("SERVER_SOFTWARE"))  t_ = replace(t_,"microsoft-iis/","")  if isnumeric(t_) then vServerVersion = cdbl(t_)  End Sub    Private Sub Class_Terminate()  Dim f  Form.RemoveAll()  For each f in Fils   Fils(f).value=empty  Set Fils(f) = Nothing  Next  Fils.RemoveAll()  Set Form = Nothing  Set Fils = Nothing  if StreamOpened then StreamT.close()  Set StreamT = Nothing  End Sub    Public Sub GetData()  Dim time1  time1 = timer()  Dim value, str, bcrlf, fpos, sSplit, slen, istart,ef  Dim TotalBytes,tempdata,BytesRead,ChunkReadSize,PartSize,DataPart,formend, formhead, startpos, endpos, formname, FileName, fileExe, valueend, NewName,localname,type_1,contentType  TotalBytes = Request.TotalBytes  ef = false  If checkEntryType = false Then ef = true : vErr = 2  If vServerVersion>=6 Then  If Not ef Then  If vMaxSize > 0 And TotalBytes > vMaxSize Then ef = true : vErr = 1  End If  End If  If ef Then Exit Sub  If vMode = 0 Then  vTotalSize = 0   StreamT.Type = 1  StreamT.Mode = 3  StreamT.Open  StreamOpened = true  BytesRead = 0  ChunkReadSize = 1024 * 16  Do While BytesRead < TotalBytes  PartSize = ChunkReadSize  If PartSize + BytesRead > TotalBytes Then PartSize = TotalBytes - BytesRead  DataPart = Request.BinaryRead(PartSize)  StreamT.Write DataPart  BytesRead = BytesRead + PartSize  Loop  StreamT.Position = 0  tempdata = StreamT.Read  Else  tempdata = Request.BinaryRead(TotalBytes)  End If  bcrlf = ChrB(13) & ChrB(10)  fpos = InStrB(1, tempdata, bcrlf)
        sSplit = MidB(tempdata, 1, fpos - 1)  slen = LenB(sSplit)  istart = slen + 2
        Do
            formend = InStrB(istart, tempdata, bcrlf & bcrlf)
            if formend<=0 then exit do
            formhead = MidB(tempdata, istart, formend - istart)
            str = Bytes2Str(formhead)
            startpos = InStr(str, "name=""") + 6
            if startpos<=0 then exit do
            endpos = InStr(startpos, str, """")
            if endpos<=0 then exit do
            formname = LCase(Mid(str, startpos, endpos - startpos))
            valueend = InStrB(formend + 3, tempdata, sSplit)
            if valueend<=0 then exit do  If InStr(str, "filename=""") > 0 Then  formname = formname & vMuti & "0"  startpos = InStr(str, "filename=""") + 10  endpos = InStr(startpos, str, """")  type_1=instr(endpos,lcase(str),"content-type")  contentType=trim(mid(str,type_1+13))  FileName = Mid(str, startpos, endpos - startpos)  If Trim(FileName) <> "" Then  FileName = Replace(FileName, "/", "\")  FileName = Replace(FileName, chr(0), "")  LocalName = FileName  FileName = Mid(FileName, InStrRev(FileName, "\") + 1)  If instr(FileName,".")>0 Then  fileExe = Split(FileName, ".")(UBound(Split(FileName, ".")))  else  fileExe = ""  End If  If vExe <> "" Then  If checkExe(fileExe) = True Then  vErr = 3  vErrExe = fileExe  tempdata = empty  Exit Sub  End If  End If  NewName = Getname()  NewName = NewName & "." & fileExe  vTotalSize = vTotalSize + valueend - formend - 6  If vSingleSize > 0 And (valueend - formend - 6) > vSingleSize Then  vErr = 5  tempdata = empty  Exit Sub  End If  If vMaxSize > 0 And vTotalSize > vMaxSize Then  vErr = 1  tempdata = empty  Exit Sub  End If  If Fils.Exists(formname) Then formname = GetNextFormName(formname)  Dim fileCls:set fileCls= new UploadFileEx  fileCls.ContentType=contentType  fileCls.Size = (valueend - formend - 6)  fileCls.Position = (formend + 3)  fileCls.FormName = formname  fileCls.NewName = NewName  fileCls.FileName = FileName  fileCls.LocalName = FileName  fileCls.extend=split(NewName,".")(ubound(split(NewName,".")))  Fils.Add formname, fileCls  Set fileCls = Nothing  End If  Else  value = MidB(tempdata, formend + 4, valueend - formend - 6)  If Form.Exists(formname) Then  Form(formname) = Form(formname) & "," & Bytes2Str(value)  Else  Form.Add formname, Bytes2Str(value)  End If  End If
            istart = valueend + 2 + slen
        Loop Until (istart + 2) >= LenB(tempdata)  vErr = 0  tempdata = empty  vLostTime = FormatNumber((timer-time1)*1000,2)  End Sub    Private Function CheckExe(ByVal ex)  Dim notIn: notIn = True  If vExe="*" then  notIn=false   elseIf InStr(1, vExe, "|") > 0 Then  Dim tempExe: tempExe = Split(vExe, "|")  Dim I: I = 0  For I = 0 To UBound(tempExe)  If LCase(ex) = tempExe(I) Then  notIn = False  Exit For  End If  Next  Else  If vExe = LCase(ex) Then  notIn = False  End If  End If  checkExe = notIn  End Function    Public Function GetSize(ByVal Size)  If Size < 1024 Then  GetSize = FormatNumber(Size, 2) & "B"  ElseIf Size >= 1024 And Size < 1048576 Then  GetSize = FormatNumber(Size / 1024, 2) & "KB"  ElseIf Size >= 1048576 Then  GetSize = FormatNumber((Size / 1024) / 1024, 2) & "MB"  End If  End Function    Private Function Bytes2Str(ByVal byt)  If LenB(byt) = 0 Then  Bytes2Str = ""  Exit Function  End If  Dim mystream, bstr  Set mystream =server.createobject("ADODB.Stream")  mystream.Type = 2  mystream.Mode = 3  mystream.Open  mystream.WriteText byt  mystream.Position = 0  mystream.CharSet = vCharSet  mystream.Position = 2  bstr = mystream.ReadText()  mystream.Close  Set mystream = Nothing  Bytes2Str = bstr  End Function    Private Function GetErr(ByVal Num)  Select Case Num  Case 0  GetErr = "COMPLETE"  Case 1  GetErr = "ERROR_FILE_EXCEEDS_MAXSIZE_LIMIT"  Case 2  GetErr = "ERROR_INVALID_ENCTYPEOR_METHOD"  Case 3  GetErr = "ERROR_INVALID_FILETYPE(." & ucase(vErrExe) & ")"  Case 5  GetErr = "ERROR_FILE_EXCEEDS_SIZE_LIMIT"  End Select  End Function    Private Function Getname()  Dim y, m, d, h, mm, S, r  Randomize  y = Year(Now)  m = right("0" & Month(Now),2)  d = right("0" & Day(Now),2)  h = right("0" & Hour(Now),2)  mm =right("0" & Minute(Now),2)  S = right("0" & Second(Now),2)  r = CInt(Rnd() * 10000)  r = right("0000" & r,4)  Getname = y & m & d & h & mm & S & r  End Function    Private Function checkEntryType()  Dim ContentType, ctArray, bArray,RequestMethod  RequestMethod=trim(LCase(Request.ServerVariables("REQUEST_METHOD")))  if RequestMethod="" or RequestMethod<>"post" then  checkEntryType = False  exit function  end if  ContentType = LCase(Request.ServerVariables("HTTP_CONTENT_TYPE"))  ctArray = Split(ContentType, ";")  if ubound(ctarray)>=0 then  If Trim(ctArray(0)) = "multipart/form-data" Then  checkEntryType = True  vboundary = Split(ContentType,"boundary=")(1)  Else  checkEntryType = False  End If  else  checkEntryType = False  end if  End Function    Public Function Forms(ByVal formname)  If trim(formname) = "-1" Then  Set Forms = Form  Else  If Form.Exists(LCase(formname)) Then  Forms = Form(LCase(formname))  Else  Forms = ""  End If  End If  End Function    Public Function Files(ByVal formname)  If trim(formname) = "-1" Then  Set Files = Fils  Else  dim vname  vname = LCase(formname) & vMuti & "0"  if instr(formname,vMuti)>0 then vname = formname  If Fils.Exists(vname) Then  Set Files = Fils(vname)  Else  Set Files = New UploadFileEmpty  End If  End If  End Function    Public Function Files_Muti(ByVal formname,byval index)  If trim(formname) = "-1" Then  Set Files_Muti = Fils  Else  If Fils.Exists(LCase(formname) & vMuti & index) Then  Set Files_Muti = Fils(LCase(formname) & vMuti & index)  Else  Set Files_Muti = New UploadFileEmpty  End If  End If  End Function      Public Function QuickSave(ByVal formname,Byval SavePath)  Dim v, formStart,File,Result,SucceedCount  SucceedCount = 0  Dim TempFormName  TempFormName = formname & vMuti  For Each v In Fils  If lcase(left(v,len(TempFormName))) = lcase(TempFormName) Then  Set File = Fils(v)  Result = File.saveToFile(SavePath,0,True)  If Result Then SucceedCount = SucceedCount + 1  'Set File=Nothing  End If  Next  QuickSave = SucceedCount  End Function      Private Function GetNextFormName(byval formname)  Dim formStart,currentIndex  formStart = left(formname,instr(formname,vMuti)+len(vMuti)-1)  currentIndex = mid(formname,instr(formname,vMuti)+len(vMuti))  currentIndex =cint(currentIndex)  do while Fils.Exists(formname)  currentIndex = currentIndex + 1  formname = formStart & currentIndex  loop  GetNextFormName = formname  End Function
End Class
Class UploadFileEmpty  Public Property Get IsFile()   IsFile = false  End Property
End Class
Class UploadFileEx  Private mvarFormName , mvarNewName , mvarLocalName , mvarFileName , mvarUserSetName , mvarContentType ,mException,mvarPosition  Private mvarSize , mvarValue , mvarPath , mvarExtend    Public Property Let Extend(ByVal vData )  mvarExtend = vData  End Property  Public Property Get Extend()   Extend = mvarExtend  End Property    Public Property Get IsFile()   IsFile = true  End Property    Public Property Let Path(ByVal vData )  mvarPath = vData  End Property  Public Property Get Path()   Path = mvarPath  End Property    Public Property Get Exception()   Exception = mException  End Property    Public Property Let Value(ByVal vData )  mvarValue = vData  End Property    Public Property Get Value()   Value = mvarValue  End Property    Public Property Let Size(ByVal vData )  mvarSize = vData  End Property  Public Property Get Size()   Size = mvarSize  End Property  Public Property Let Position(ByVal vData )  mvarPosition = vData  End Property  Public Property Get Position()   Size = mvarPosition  End Property    Public Property Let ContentType(ByVal vData )  mvarContentType = vData  End Property  Public Property Get ContentType()   ContentType = mvarContentType  End Property    Public Property Let UserSetName(ByVal vData )  mvarUserSetName = vData  End Property  Public Property Get UserSetName()   UserSetName = mvarUserSetName  End Property    Public Property Let FileName(ByVal vData )  mvarFileName = vData  End Property  Public Property Get FileName()   FileName = mvarFileName  End Property    Public Property Let LocalName(ByVal vData )  mvarLocalName = vData  End Property  Public Property Get LocalName()   LocalName = mvarLocalName  End Property    Public Property Let NewName(ByVal vData )  mvarNewName = vData  End Property  Public Property Get NewName()   NewName = mvarNewName  End Property    Public Property Let FormName(ByVal vData )  mvarFormName = vData  End Property  Public Property Get FormName()   FormName = mvarFormName  End Property    Private Sub Class_Initialize()  mvarSize =0  mvarFormName = ""  End Sub    Public Function SaveToFile(ByVal Path , byval tOption, byval OverWrite)  On Error Resume Next  Dim IsP   IsP = (InStr(Path, ":") = 2)  If Not IsP Then Path = Server.MapPath(Path)  Path = Replace(Path, "/", "\")  If Mid(Path, Len(Path) - 1) <> "\" Then Path = Path + "\"  CreateFolder Path  mvarPath = Path  If tOption = 1 Then  Path = Path & mvarLocalName: mvarFileName = mvarLocalName  Else  If tOption = -1 And mvarUserSetName <> "" Then  Path = Path & mvarUserSetName & "." & mvarExtend: mvarFileName = mvarUserSetName & "." & mvarExtend  Else  Path = Path & mvarNewName: mvarFileName = mvarNewName  End If  End If  If Not OverWrite Then  Path = GetFilePath()  End If  Dim tmpStrm  Set tmpStrm =server.CreateObject("ADODB.Stream")  tmpStrm.Mode = 3  tmpStrm.Type = 1  tmpStrm.Open  StreamT.Position = mvarPosition  StreamT.copyto tmpStrm,mvarSize  tmpStrm.SaveToFile Path, 2  tmpStrm.Close  Set tmpStrm = Nothing  'Set SaveToFile = new ErrorMessage_  If Not Err Then  SaveToFile = true  Else  SaveToFile = false  mException=Err.Description  End If  End Function  Public Function GetBytes()  StreamT.Position = mvarPosition  GetBytes = StreamT.read(mvarSize)  End Function  Private Function CreateFolder(ByVal folderPath )  Dim oFSO  Set oFSO = server.CreateObject("Scripting.FileSystemObject")  Dim sParent   sParent = oFSO.GetParentFolderName(folderPath)  If sParent = "" Then Exit Function  If Not oFSO.FolderExists(sParent) Then CreateFolder (sParent)  If Not oFSO.FolderExists(folderPath) Then oFSO.CreateFolder (folderPath)  Set oFSO = Nothing  End Function    Private Function GetFilePath()   Dim oFSO, Fname , FNameL , i   i = 0  Set oFSO = server.CreateObject("Scripting.FileSystemObject")  Fname = mvarPath & mvarFileName  FNameL = Mid(mvarFileName, 1, InStr(mvarFileName, ".") - 1)  Do While oFSO.FileExists(Fname)  Fname = mvarPath & FNameL & "(" & i & ")." & mvarExtend  mvarFileName = FNameL & "(" & i & ")." & mvarExtend  i = i + 1  Loop  Set oFSO = Nothing  GetFilePath = Fname  End Function
End Class
%> 
asp上传图片代码
版权声明:若无特殊注明,本文皆为《 傲世零零 》原创,转载请保留文章出处。
本文链接:asp上传图片代码 http://www.wangjunjiang.com/?post=95
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗

评论信息框

吃奶的力气提交吐槽中...