http://www.csdn.net/develop/Read_Article.asp?Id=18987

解决方案 »

  1.   

    谢谢 lynx1111,我去下载下不来smartupload,不用组件怎么实现?我找到的javabean都是把上传的文件存到文件夹里面的。有没有直接传到数据库的javabean 啊。
      

  2.   

    <!--#include file="cls_load.asp"--><%
    dim upload,file,sfilename,bfilename,formName,sPath,bPath,iCount
    set upload=new upload_5xSoft ''建立上传对象bPath = "images/" '图片路径shuoming = upload.form("shuoming")set file=upload.file("file")  '上传图片
    if file.FileSize>0 then         ''如果 FileSize > 0 说明有文件数据
        bfilename=file.FileName
        file.SaveAs Server.mappath(bPath&bfilename)   ''保存文件           
        response.write Server.mappath(bPath&bfilename) & "<br>"
    end if          
    set file=nothing
    %>
    //cls_load.asp<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>'''''''''''''''''''''''''''''''''''''''''''''''''
    '
    '请保留此信息: 稻香老农制作, 
    '
    '''''''''''''''''''''''''''''''''''''''''''''''''dim upfile_5xSoft_StreamClass upload_5xSoft
      
    dim Form,File,Version
      
    Private Sub Class_Initialize 
    dim iStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,theFile
    dim strDiv,mFormName,mFormValue,mFileName,mFileSize,mFilePath,iDivLen,mStr
    Version=""
    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
       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
       form.Add mFormName,mFormValue
      end if  iFormStart=iformEnd+iDivLen
      iFormEnd=inString(iformStart,strDiv)-1
    wend
    End SubPrivate 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 functionPrivate 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 FunctionPrivate 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
    End Class
    Class FileInfo
      dim FormName,FileName,FilePath,FileSize,FileStart
      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.copyto dr,FileSize
        dr.SaveToFile FullPath,2
        dr.Close
        set dr=nothing 
        SaveAs=0
      end function
    End Class
    </SCRIPT>
      

  3.   

    谢谢zhouguoyao,<!--#include file="cls_load.asp"--> 里面还要包括ASP文件吗?最后一行怎么多了</SCRIPT>?我今天去http://www.jspsmart.com下载jspsmartupload ,一直下不来啊,不知道怎么搞的。那位有能不能给我发一个啊, .多谢了。