Link to home
Start Free TrialLog in
Avatar of pixer77
pixer77

asked on

Microsoft VBScript runtime error '800a01b6' / Object doesn't support this property or method: 'Response.Form'

Hi ,

I am having problem while trying to send variables from a page to the Upload.

Can u please help me to resolve this issue?

Thank you in advance for ur help
Emiliano



Below the error i get when I add T1=Response.Form("T1") into outputfile.asp  :
--------------------------------------------------
Microsoft VBScript runtime  error '800a01b6'

Object doesn't support this property or method: 'Response.Form'

/public/outputFile.asp, line 36
-------------------------------------------------------

I attach here the scripts:

======= UPLOAD.ASP =================
<%Sub BuildUploadRequest(RequestBin)
      PosBeg = 1
      PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
      boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
      boundaryPos = InstrB(1,RequestBin,boundary)
      Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
            Dim UploadControl
            Set UploadControl = CreateObject("Scripting.Dictionary")
            Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
            Pos = InstrB(Pos,RequestBin,getByteString("name="))
            PosBeg = Pos+6
            PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
            Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
            PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
            PosBound = InstrB(PosEnd,RequestBin,boundary)
        If  PosFile<>0 AND (PosFile<PosBound) Then
                  PosBeg = PosFile + 10
                  PosEnd =  InstrB(PosBeg,RequestBin,getByteString(chr(34)))
                  FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
                  UploadControl.Add "FileName", FileName
                  Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
                  PosBeg = Pos+14
                  PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
                  ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
                  UploadControl.Add "ContentType",ContentType
                  PosBeg = PosEnd+4
                  PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
                  Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
                  Else
                  Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
                  PosBeg = Pos+4
                  PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
                  Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
            End If

            UploadControl.Add "Value" , Value      
            UploadRequest.Add name, UploadControl
            BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
      Loop
  End Sub
  Function getByteString(StringStr)
      For i = 1 to Len(StringStr)
            char = Mid(StringStr,i,1)
            getByteString = getByteString & chrB(AscB(char))
      Next
  End Function
  Function getString(StringBin)
      getString =""
      For intCount = 1 to LenB(StringBin)
            getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
      Next
  End Function%>

===== outputFile.asp ==========
<!--#include file="upload.asp"-->
<%

  Response.Expires=0
  Response.Buffer = TRUE
  Response.Clear
  byteCount = Request.TotalBytes
  RequestBin = Request.BinaryRead(byteCount)
  Dim UploadRequest
  Set UploadRequest = CreateObject("Scripting.Dictionary")
  BuildUploadRequest  RequestBin
  contentType = UploadRequest.Item("blob").Item("ContentType")
  filepathname = UploadRequest.Item("blob").Item("FileName")
  filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
  value = UploadRequest.Item("blob").Item("Value")

  'Create FileSytemObject Component
  Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

  'Create and Write to a File
  pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
  Set MyFile = ScriptObject.CreateTextFile(Left(Server.mappath(Request.ServerVariables("PATH_INFO")),pathEnd) & filename)
 
  For i = 1 to LenB(value)
       MyFile.Write chr(AscB(MidB(value,i,1)))
  Next
  MyFile.Close            %>


===== that's the HTML for i am using to send the variable to the upload page ======

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
  <title></title>
</head>

<body>

  <form METHOD="Post" name="prova1" ENCTYPE="multipart/form-data" action="public/outputFile.asp" >
  t1:<input name="T1"><br>
File : <INPUT TYPE="file" NAME="blob"><BR>



         <input type="submit" name="Insert" value="" >
  </form>


</body>

</html>
SOLUTION
Avatar of TimCottee
TimCottee
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of pixer77
pixer77

ASKER


For tim , you are right , I posted the wrong error, I meant :

--------------------------------------------------------------
Request object error 'ASP 0207 : 80004005'

Cannot use Request.Form

/public/outputFile.asp, line 36

Cannot use Request.Form collection after calling BinaryRead.
-------------------------------------------------------------------

For kevp75 , I tryed UploadRequest.Item("T1")  before posting and i got  different errors becasue i forgot to add Item("Value")

 UploadRequest.Item("T1").Item("Value")

thank you anyway for your help, if you let mee how to split the points  , i'll give them to both of you

cheers
emiliano