ciao a tutti...ho questa classe che mi permette di gestire l'upload conservando i dati provenienti dal form
ma ho un errore subito alla prima riga

codice:
Errore di compilazione di Microsoft VBScript error '800a03ea' 

Errore di sintassi 

class_upload.asp, line 2 

Class FileUploader
come mai subito all'apertura della classe??vi posto la classe completa:
codice:
<%
Class FileUploader
  Public  Files
  Private mcolFormElem
  Public maxSize
  Public fileExt
  Public error
  Public errorDesc

  Private Sub Class_Initialize()
    Set Files = Server.CreateObject("Scripting.Dictionary")
    Set mcolFormElem = Server.CreateObject("Scripting.Dictionary")
  End Sub

  Private Sub Class_Terminate()
    If IsObject(Files) Then
      Files.RemoveAll()
      Set Files = Nothing
    End If
    If IsObject(mcolFormElem) Then
      mcolFormElem.RemoveAll()
      Set mcolFormElem = Nothing
    End If
  End Sub

  Public Property Get Form(sIndex)
    Form = ""
    If mcolFormElem.Exists(LCase(sIndex)) Then 
      Form = mcolFormElem.Item(LCase(sIndex))
    End If
  End Property

  Public Default Sub Upload()
    Dim biData, sInputName
    Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos
    Dim nPosFile, nPosBound

    error = False
    errorDesc = ""

    'verifico se lo script che ha richiamato la classe
    'ha inizializzato la dimensione max del file
    If Not IsNull(maxSize) Then
      'se il file supera la dimensione stabilita si interrompe la sub
      If Request.TotalBytes > maxSize Then
        Error = True
        errorDesc = "File più grande di " & maxSize & " byte"
        Exit Sub
      End If
    End If

    biData = Request.BinaryRead(Request.TotalBytes)

    nPosBegin = 1
    nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))

    If (nPosEnd-nPosBegin) <= 0 Then Exit Sub

    vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
    nDataBoundPos = InstrB(1, biData, vDataBounds)

    Do Until nDataBoundPos=InstrB(biData,vDataBounds & CByteString("--"))

     nPos=InstrB(nDataBoundPos,biData,CByteString("Content-Disposition"))
     nPos = InstrB(nPos, biData, CByteString("name="))
     nPosBegin = nPos + 6
     nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
     sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
     nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename="))
     nPosBound = InstrB(nPosEnd, biData, vDataBounds)

     If nPosFile <> 0 And  nPosFile < nPosBound Then
      Dim oUploadFile, sFileName, sFileExt
      Set oUploadFile = New UploadedFile

      nPosBegin = nPosFile + 10
      nPosEnd =  InstrB(nPosBegin, biData, CByteString(Chr(34)))

      sFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
      sFileName1=Right(sFileName,Len(sFileName)-InStrRev(sFileName, "\"))

      oUploadFile.FileName=Right(sFileName, _
                 Len(sFileName)-InStrRev(sFileName,"\"))

      'recuperiamo l'estensione del file
      sfileExt = Right(sFileName1, _
                 Len(sFileName1)-InStrRev(sFileName1,"."))
                 
      'verifico se lo script che ha richiamato la classe
      'ha inizializzato il tipo di estenzioni ammesse
      If Not IsNull(fileExt) Then
       'se l'estenzione del file non è incluse tra quelle imposte
       'imterrompiamo la sub
       If Instr(fileExt, sFileExt) = 0 Then
        Error = True
        errorDesc = "Tipo di file non ammesso"
        Exit Sub
       End If
      End If

      nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:"))
      nPosBegin = nPos + 14
      nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))

      oUploadFile.ContentType = CWideString(MidB(biData, _
                 nPosBegin,nPosEnd-nPosBegin))

      nPosBegin = nPosEnd+4
      nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
      oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin)

      If oUploadFile.FileSize > 0 Then 
        Files.Add LCase(sInputName),oUploadFile
      End If
     Else
      nPos = InstrB(nPos, biData, CByteString(Chr(13)))
      nPosBegin = nPos + 4
      nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
      If Not mcolFormElem.Exists(LCase(sInputName)) Then 
       mcolFormElem.Add LCase(sInputName), _
            CWideString(MidB(biData,nPosBegin,nPosEnd-nPosBegin))
      End If
     End If

     nDataBoundPos=InstrB(nDataBoundPos+LenB(vDataBounds), _
            biData,vDataBounds)
    Loop
  End Sub

  'String to byte string conversion
  Private Function CByteString(sString)
    Dim nIndex
    For nIndex = 1 to Len(sString)
      CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1)))
    Next
  End Function

  'Byte string to string conversion
  Private Function CWideString(bsString)
    Dim nIndex
    CWideString =""
    For nIndex = 1 to LenB(bsString)
      CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1))) 
    Next
  End Function
End Class

Class UploadedFile
  Public ContentType
  Public FileName
  Public FileData

  Public Property Get FileSize()
    FileSize = LenB(FileData)
  End Property

  Public Sub SaveToDisk(sPath)
    Dim oFS, oFile
    Dim nIndex

    If sPath = "" Or FileName = "" Then Exit Sub
    If Mid(sPath, Len(sPath)) <> "\" Then sPath = sPath & "\"

    Set oFS = Server.CreateObject("Scripting.FileSystemObject")
    If Not oFS.FolderExists(sPath) Then Exit Sub

    Set oFile = oFS.CreateTextFile(sPath & FileName, True)

    For nIndex = 1 to LenB(FileData)
      oFile.Write Chr(AscB(MidB(FileData,nIndex,1)))
    Next
    oFile.Close
  End Sub

  Public Sub SaveToDatabase(ByRef oField)
    If LenB(FileData) = 0 Then Exit Sub
    If IsObject(oField) Then oField.AppendChunk FileData
  End Sub
End Class
%>
il fatto che la classe viene inclusa potrebbe essere la causa???

mah...help