webForumDet fria alternativet

UploadRequest.Item("...")

3 svar · 277 visningar · startad av henkepenka

henkepenkaMedlem sedan sep. 2002125 inlägg
#1

Hejsan!

Jag har ett problem...håller på med en bilduppladdning men det går inte som ag vill. Det är ett uppladdningsscript som inte är beroende av någon komponent.

Jag ska alltså ladda upp en bild samtidigt som jag ska spara ner information från andra fält till en databas. I början klagade datorn på att jag inte kunde köra Requets.Form tillsammans med BinaryRead. Då läste jag att jag skulle använda mig av UploadRequest.Item("...").Item("Value").

Men nu får jag detta felmeddelande:

Microsoft VBScript runtime error '800a01a8'

Object required: 'Item(...)'

/new/bekrafta.asp, line 33

och rad 33 är följande:

If UploadRequest.Item("homepage").Item("Value") = "" THEN

Tacksam för all hjälp jag kan få!

JymdisMedlem sedan mars 20016 260 inlägg
#2

Du får nog berätta vad det är för uppladdningsscript.
Dock tycker jag det verkar som kacka lagts på kacka på nåt sätt, har du provat att ta bort sista .Item("Value")?

henkepenkaMedlem sedan sep. 2002125 inlägg
#3

Jag skickar upp koden här så får ni se...

Response.Expires=0
Response.Buffer = TRUE
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")

BuildUploadRequest RequestBin

Function Createpass(arg)
Dim vPasswd, i
const vPasschars = "qwertyuipkjhgfdsazxcvbnm23456789QWERTYUPLKJHGFDSAZXCVBNM"
Randomize
For i = 1 To arg
vPasswd = vPasswd & mid ( vPasschars, Int(rnd*Len(vPasschars))+1, 1 )
Next
Createpass = vPasswd
End Function
Dim vPassword
vPassword = Createpass(5)

Dim u
u = 1

Password = vPassword

If UploadRequest.Item("homepage").Item("Value") = "" THEN
 http = "http://"
Else
 http = UploadRequest.Item("homepage").Item("Value")
End If

If UploadRequest.Item("mobil").Item("Value") = "" THEN
 mob = "07"
Else
 mob = UploadRequest.Item("mobil").Item("Value")
End If

namn = UploadRequest.Item("name").Item("Value")
email = UploadRequest.Item("email").Item("Value")
tfn = UploadRequest.Item("tfn").Item("Value")
typ = UploadRequest.Item("type").Item("Value")
category = UploadRequest.Item("category").Item("Value")
subject = UploadRequest.Item("subject").Item("Value")

Response.Write namn & "<br>" & email
body = UploadRequest.Item("body").Item("Value")
body = REPLACE(body,vbCrLf,"<br>")

tid = Now
datum = Now
lan = UploadRequest.Item("lan").Item("Value")
pris = UploadRequest.Item("pris").Item("Value")
password = password
intevisa = UploadRequest.Item("notfn").Item("Value")
homepage = http
mobil = mob
ursprung = u
klick = 0
expo = UploadRequest.Item("expo").Item("Value")
betal = UploadRequest.Item("betalkod").Item("Value")

contentType   = UploadRequest.Item("fil").Item("ContentType")
filepathname  = UploadRequest.Item("fil").Item("FileName")
filename         = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value              = UploadRequest.Item("fil").Item("Value")
Bild                  = filename

' hämtar filextension 
extension = right(Bild,len(Bild) - instr(Bild,".") +1)

' bygger ihop det nya filnamnet 
newfilename = password & extension 

Make_upload = False
Filetype = lCase(right(Filename, len(Filename)-instrRev(Filename,".")))
Select Case Filetype
    Case "jpeg"
    Make_upload = True
    Case "jpg"
    Make_upload = True
    Case "png"
    Make_upload = True
    Case "gif"
    Make_upload = True
End Select

If Make_upload = True Then

If (byteCount / 1000) > 70 then 
  Response.Redirect "add.asp?mess=Filen för stor! Max 70 kb. Denna bild var " & Round(byteCount/1000,1) & " kb"
Else

Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("adimages/" & newfilename))

For i = 1 to LenB(value)
   MyFile.Write chr(AscB(MidB(value,i,1)))
Next

MyFile.Close
	
Set Connect = Server.CreateObject("ADODB.Connection")
	OpenDatabase
	
SQL = "INSERT INTO annonser "
SQL = SQL & "(name,email,tfn,typ,category,subject,body,date,time,lan,homepage,pris,password,intevisa,klick,mobil,ursprung,godkann,expo,betal,expokod,betalkod,file1)"
SQL = SQL & "Values('" & namn & "','" & email & "','" & tfn & "','" & typ & "','" & category & "','" & subject & "','" & body & "','" & datum & "','" & tid & "','" & lan & "','" & homepage & "','" & pris & "','" & password & "','" & intevisa & "','" & klick & "','" & mobil & "','" & ursprung & "','no','" & expo & "','" & betal & "','" & expokod & "','" & betalkod & "','" & newfilename & "')"
Connect.execute(SQL)

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

End If
Else
  Response.Redirect "upload.asp?bildid=" & Request.Querystring("bildid") & "&id=" & Request.Querystring("id") & " &mess=Filen var med fel filformat. Endast .jpg, .jpeg, .gif och .png tillåtna."
End If
End If
henkepenkaMedlem sedan sep. 2002125 inlägg
#4

någon?

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)