就是它
upfile_classes_Stream.write Request.BinaryRead(Request.TotalBytes)这句到底那里错了

解决方案 »

  1.   

    错误就是它Request.BinaryRead(Request.TotalBytes)和一个后门程序有管的,杀毒软件老是屏蔽它有什么方法可以替换它嘛
      

  2.   

    你这时asp的上传组件吧,,,用asp.net自带的上传就可以了啊
      

  3.   

    dim upfile_classes_StreamClass upload_classes
      dim Form,File
      Private Sub Class_Initialize 
        dim iStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,theFile
        dim strDiv,mFormName,mFormValue,mFileName,mFileSize,mFilePath,iDivLen,mStr
        if Request.TotalBytes<1 then Exit Sub
        set Form=CreateObject("Scripting.Dictionary")
        set File=CreateObject("Scripting.Dictionary")
        set upfile_classes_Stream=CreateObject("Adodb.Stream")
        upfile_classes_Stream.mode=3
        upfile_classes_Stream.type=1
        upfile_classes_Stream.open
        upfile_classes_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 Sub  Private Function subString(theStart,theLen)
        dim i,c,stemp
        upfile_classes_Stream.Position=theStart-1
        stemp=""
        for i=1 to theLen
          if upfile_classes_Stream.EOS then Exit for
          c=ascB(upfile_classes_Stream.Read(1))
          If c > 127 Then
            if upfile_classes_Stream.EOS then Exit for 
            stemp=stemp&Chr(AscW(ChrB(AscB(upfile_classes_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_classes_Stream.Size-theLen 
          if i>upfile_classes_Stream.size then exit Function
          upfile_classes_Stream.Position=i-1
          if AscB(upfile_classes_Stream.Read(1))=AscB(midB(Str,1)) then 
            InString=i
            for j=2 to theLen 
              if upfile_classes_Stream.EOS then
                inString=0 
                Exit for 
              end if
              if AscB(upfile_classes_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_classes_Stream.close
        set upfile_classes_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 ClassClass 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_classes_Stream.position=FileStart-1
        upfile_classes_Stream.copyto dr,FileSize 
        dr.SaveToFile FullPath,2
        dr.Close
        set dr=nothing
        SaveAs=0
      end function
    End Class******************************************************************
    这是正段程序关键错误出现在这一段中if Request.TotalBytes<1 then Exit Sub
        set Form=CreateObject("Scripting.Dictionary")
        set File=CreateObject("Scripting.Dictionary")
        set upfile_classes_Stream=CreateObject("Adodb.Stream")
        upfile_classes_Stream.mode=3
        upfile_classes_Stream.type=1
        upfile_classes_Stream.open
        upfile_classes_Stream.write Request.BinaryRead(Request.TotalBytes)
        vbEnter=Chr(13)&Chr(10)
        iDivLen=inString(1,vbEnter)+1
        strDiv=subString(1,iDivLen)
        iFormStart=iDivLen 屏蔽这一句
    Request.BinaryRead(Request.TotalBytes)郁闷啊,有什么办法嘛,请教高手们
      

  4.   

    我在想如果把 Request.TotalBytes 赋值给一个变量 如 xly 再调用这个Request.TotalBytes的时候打上xly 是不是和Request.TotalBytes是一个效果Request.BinaryRead(Request.TotalBytes)是不是可以替换为Request.BinaryRead(xly)这样的话下面这段程序
    if Request.TotalBytes<1 then Exit Sub
        set Form=CreateObject("Scripting.Dictionary")
        set File=CreateObject("Scripting.Dictionary")
        set upfile_classes_Stream=CreateObject("Adodb.Stream")
        upfile_classes_Stream.mode=3
        upfile_classes_Stream.type=1
        upfile_classes_Stream.open
        upfile_classes_Stream.write Request.BinaryRead(Request.TotalBytes)
        vbEnter=Chr(13)&Chr(10)
        iDivLen=inString(1,vbEnter)+1
        strDiv=subString(1,iDivLen)
        iFormStart=iDivLen 
    是不是可以这样写
    xly=Request.TotalBytes
    if xly<1 then Exit Sub
        set Form=CreateObject("Scripting.Dictionary")
        set File=CreateObject("Scripting.Dictionary")
        set upfile_classes_Stream=CreateObject("Adodb.Stream")
        upfile_classes_Stream.mode=3
        upfile_classes_Stream.type=1
        upfile_classes_Stream.open
        upfile_classes_Stream.write Request.BinaryRead(xly)
        vbEnter=Chr(13)&Chr(10)
        iDivLen=inString(1,vbEnter)+1
        strDiv=subString(1,iDivLen)
        iFormStart=iDivLen 
      

  5.   

    用什么办法可以替换Request.TotalBytes
    可以用变量嘛,怎么定义
    谁知道
      

  6.   

    ASP.NET中自带的上传非常的强大,没有必要还用ASP的无组件上传那一套.
    下面是一个简单的示例程序,你参考一下.System.Web.HttpPostedFile myPost = this.Request.Files[0];
     if(myPost.ContentLength !=0)
     {
      string uploadpath = this.Server.MapPath("uploadfile");
      string tmpfilename = myPost.FileName;
      //文件名
      string filename = tmpfilename.Substring(tmpfilename.LastIndexOf("\\") + 1);  //原文件的保存路径
      string fileSavePath = uploadpath + "\\" + filename;  //保存原图片   
      myPost.SaveAs(fileSavePath);
     }
      

  7.   

    多种方法供楼主选择
    http://community.csdn.net/Expert/topic/4073/4073103.xml?temp=.7773249
    http://community.csdn.net/Expert/topic/4066/4066707.xml?temp=1.914614E-02