Avatar billede plasmon Nybegynder
16. maj 2004 - 14:28 Der er 21 kommentarer

Hvorfor Cannot call BinaryRead after using Request.Form

Hej jeg har et upload script, som jeg mener har virket, men ikke virker mer, Meget mærkeligt.

Når jeg prøver at uploade en fil kommer dem med følgende felj.:


Error Type:
Request object, ASP 0206 (0x80004005)
Cannot call BinaryRead after using Request.Form collection.
/bif/Upload_billedalbum.asp, line 48

og i linie 48 er følgende:


mySmartUpload.Upload

Her er hele koden:
[kode]
<!--#include file="functions.asp" -->
<%
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
dim cn    ' connection til database
set cn = server.createobject("ADODB.Connection")
cn.open = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.MapPath(DatabasePath)


    sql2="SELECT MAX(a_id) As Maximal FROM filer Where album <> ''"
    Set UploadFileItems2 = cn.execute(sql2)
   
    If NOT UploadFileItems2.eof Then
        a_id = UploadFileItems2("Maximal")
        a_id = a_id + 1
    End if
   
    If Request.Querystring("u_id1") = "" Then
        u_id = 0
    Else
        u_id = Request.Querystring("u_id1")
    End if
   
'    If Request.Querystring("u_id1") Then
   
'  On Error Resume Next
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim intCount
  intCount=0
       
'  Object creation
'  ***************
'  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Only allow txt or htm files
'  ***************************
  mySmartUpload.AllowedFilesList = "jpg,jpeg,gif"

'  Only allow files smaller than 100000 bytes
'  *****************************************
  mySmartUpload.MaxFileSize = 100000


'  Upload
'  ******
  mySmartUpload.Upload

'  Select each file
'  ****************
  For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then
      '  Save the files with his original names in a virtual path of the web server
      '  ****************************************************************************
        file.SaveAs(Server.MapPath("folders/" & Session("afd") & "/" & Request.Querystring("dir") & "/" & date() & "_" & file.FileName))

    sql="INSERT INTO filer (afd_id,u_id,a_id,b_id,filnavn,undermappe,dato,album) VALUES('"_
        & Session("afd") & "','"_
        & u_id & "','"_
        & a_id & "','"_
        & Session("b_id") & "','"_
        & date() & "_" & file.FileName & "','"_
        & Request.Querystring("dir") & "','"_
        & now() & "','"_
        & Request.Querystring("dir") & "')"
        Set UploadFileItems1 = cn.execute(sql)
        Set UploadFileItems1 = Nothing

      '  Display the properties of the current file
      '  ******************************************
        Response.Write("Name = " & file.Name & "<BR>")
        Response.Write("Size = " & file.Size & "<BR>")
        Response.Write("FileName = " & file.FileName & "<BR>")
        Response.Write("FileExt = " & file.FileExt & "<BR>")
        Response.Write("FilePathName = " & file.FilePathName & "<BR>")
        Response.Write("ContentType = " & file.ContentType & "<BR>")
        Response.Write("ContentDisp = " & file.ContentDisp & "<BR>")
        Response.Write("TypeMIME = " & file.TypeMIME & "<BR>")
        Response.Write("SubTypeMIME = " & file.SubTypeMIME & "<BR>")
        intCount = intCount + 1
      End If
     
      Response.write "kommer dette med"
     
  Next

'  Display the number of files which could be uploaded
'  ***************************************************
'  Response.Write("<BR>" & mySmartUpload.Files.Count & " filer kunne blive oploaded.<BR>")

'  Display the number of files uploaded
'  ************************************
'  Response.Write(intCount & " file(r) oploaded.<BR>")
'  Trap errors
'  ***********
'  If Err Then
'    Response.Write("<b>Forkert valg : </b>" & Err.description)
  '    Response.Write "<br><br>Tryk <a href='java script:history.back(-1)'>HER</a> for at komme tilbage og vælg en ny fil."
  'Else
  '  Display the number of files uploaded
  '  ************************************
      Response.Write(intCount & " file(s) uploaded.")
      Response.Redirect "default.asp?action=billedalbum&mode=view_album&dir=" & Request.Querystring("dir") & "&afd=" & session("afd") & "&edit=edit"
  'End If


'Response.Redirect "default.asp?action=billedalbum&mode=view_album&afd=" & session("afd") & "&dir=" & Request.Querystring("dir")
cn.Close
%>

[/kode slut]

Hvad kan fejlen være?
Avatar billede ellebaek Nybegynder
16. maj 2004 - 14:34 #1
du skal i stedet bruge:

MySmartUpload.form("formnavn")

Det er sådan mysmartupload fungerer..
Jeg kan ikke give dig en forklaring herpå ;-)
Avatar billede ellebaek Nybegynder
16. maj 2004 - 14:36 #2
men jeg kan ikke se hvor du bruger din request.form..?
Avatar billede plasmon Nybegynder
16. maj 2004 - 14:55 #3
Nej jeg bruger ikke request.form på siden men det er så nok i den includet fil. hvilken jeg nu har fjernet.

Nu kommer følgende fejl:

This key is already associated with an element of this collection
/bif/Upload_billedalbum.asp, line 61

Den uploader nu filen men kommer med fejlen.

I linie 61 er følgende:

  mySmartUpload.Upload

???
Avatar billede ellebaek Nybegynder
16. maj 2004 - 15:02 #4
hmm..
Mystisk fejl, den har jeg ikke set før..

prøv måske at rette denne linie:
mySmartUpload.AllowedFilesList = "jpg,jpeg,gif"
til:
mySmartUpload.AllowedFilesList = "jpg,gif"
Avatar billede plasmon Nybegynder
16. maj 2004 - 15:28 #5
Ok det har jeg så gjort. Men det gør ingen forskel? det er lidt mærkeligt
Avatar billede ellebaek Nybegynder
16. maj 2004 - 15:35 #6
prøv lige at slette denne linie:
Dim mySmartUpload
Avatar billede plasmon Nybegynder
16. maj 2004 - 15:47 #7
Name redefined
/bif/Upload_billedalbum.asp, line 28, column 4
Dim mySmartUpload

Det tror jeg ikke er løsningen
Avatar billede ellebaek Nybegynder
16. maj 2004 - 15:51 #8
du skal slette den linie..
Den skal ikke være i filen..
Avatar billede plasmon Nybegynder
16. maj 2004 - 15:52 #9
det er gjort, men hvad kan det så være som skaber problemet?
Avatar billede ellebaek Nybegynder
16. maj 2004 - 15:54 #10
nu får du da ikke den fejl længere med name redifined vel..?
men får du stadig den anden fejl..?
Avatar billede plasmon Nybegynder
16. maj 2004 - 15:59 #11
Nej det er stadig den anden fejl som er problemet:

This key is already associated with an element of this collection

Den uploader billedet men kommer stadig med en fejl.?
Avatar billede ellebaek Nybegynder
16. maj 2004 - 16:15 #12
hvordan ser koden ud nu..?
Avatar billede plasmon Nybegynder
16. maj 2004 - 16:40 #13
her er koden som den ser ud nu

[kode]

<!--#include file="serverinfo.asp" -->
<%
  ' connection til database
dim cn
'Dim mySmartUpload
set cn = server.createobject("ADODB.Connection")
cn.open = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.MapPath(DatabasePath)

    sql2="SELECT MAX(a_id) As Maximal FROM filer Where album <> ''"
    Set UploadFileItems2 = cn.execute(sql2)
   
    If NOT UploadFileItems2.eof Then
        a_id = UploadFileItems2("Maximal")
        a_id = a_id + 1
    End if
   
    If Request.Querystring("u_id1") = "" Then
        u_id = 0
    Else
        u_id = Request.Querystring("u_id1")
    End if
   
'    If Request.Querystring("u_id1") Then
   
  On Error Resume Next
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim intCount
  intCount=0
       
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Only allow txt or htm files
'  ***************************
  mySmartUpload.AllowedFilesList = "jpg,gif"

'  Only allow files smaller than 100000 bytes
'  *****************************************
  mySmartUpload.MaxFileSize = 100000


'  Upload
'  ******
  mySmartUpload.Upload

'  Select each file
'  ****************
  For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then
      '  Save the files with his original names in a virtual path of the web server
      '  ****************************************************************************
        file.SaveAs(Server.MapPath("folders/" & Session("afd") & "/" & Request.Querystring("dir") & "/" & date() & "_" & file.FileName))

    sql="INSERT INTO filer (afd_id,u_id,a_id,b_id,filnavn,undermappe,dato,album) VALUES('"_
        & Session("afd") & "','"_
        & u_id & "','"_
        & a_id & "','"_
        & Session("b_id") & "','"_
        & date() & "_" & file.FileName & "','"_
        & Request.Querystring("dir") & "','"_
        & now() & "','"_
        & Request.Querystring("dir") & "')"
        Set UploadFileItems1 = cn.execute(sql)
        Set UploadFileItems1 = Nothing

      '  Display the properties of the current file
      '  ******************************************
'        Response.Write("Name = " & file.Name & "<BR>")
'        Response.Write("Size = " & file.Size & "<BR>")
  '      Response.Write("FileName = " & file.FileName & "<BR>")
  '      Response.Write("FileExt = " & file.FileExt & "<BR>")
    '    Response.Write("FilePathName = " & file.FilePathName & "<BR>")
    '    Response.Write("ContentType = " & file.ContentType & "<BR>")
      '  Response.Write("ContentDisp = " & file.ContentDisp & "<BR>")
      '  Response.Write("TypeMIME = " & file.TypeMIME & "<BR>")
        ' Response.Write("SubTypeMIME = " & file.SubTypeMIME & "<BR>")
        'intCount = intCount + 1
      End If
   
  Next

'  Display the number of files which could be uploaded
'  ***************************************************
'  Response.Write("<BR>" & mySmartUpload.Files.Count & " filer kunne blive oploaded.<BR>")

'  Display the number of files uploaded
'  ************************************
'  Response.Write(intCount & " file(r) oploaded.<BR>")
'  Trap errors
'  ***********
  If Err Then
      Response.Write("<b>Forkert valg : </b>" & Err.description)
      Response.Write "<br><br>Tryk <a href='java script:history.back(-1)'>HER</a> for at komme tilbage og vælg en ny fil."
  Else
  '  Display the number of files uploaded
  '  ************************************
      Response.Write(intCount & " file(s) uploaded.")
      Response.Redirect "default.asp?action=billedalbum&mode=view_album&dir=" & Request.Querystring("dir") & "&afd=" & session("afd") & "&edit=edit"
  End If


'Response.Redirect "default.asp?action=billedalbum&mode=view_album&afd=" & session("afd") & "&dir=" & Request.Querystring("dir")
cn.Close
%>

[/kode]
Avatar billede ellebaek Nybegynder
16. maj 2004 - 16:47 #14
hvad står der i serverinfo.asp `?
Avatar billede plasmon Nybegynder
16. maj 2004 - 16:55 #15
Der står:

<%
' Sætter stien på Databasen & adressen på mailserveren
domain = Request.ServerVariables("server_name")
If Request.ServerVariables("server_name") = domain Then
    'Navnet på mail-serveren
    mailserver = "mail3.cliche.dk"
    'Stien på databasen
    DatabasePath = "../db/database.mdb"
Else
    'Navnet på mail-serveren
    mailserver = "mail.dsa-net.dk"
    'Stien på databasen
    DatabasePath = "db/database.mdb"
End if
%>
Avatar billede ellebaek Nybegynder
16. maj 2004 - 17:02 #16
læste mig til at fejlen er noget med at et navn redefineres..
Så har du flere værdier der angives flere gange ?
Avatar billede ellebaek Nybegynder
24. maj 2004 - 11:28 #17
har du fået det fikset..?
Avatar billede plasmon Nybegynder
25. maj 2004 - 17:40 #18
Nej den skriver stadig fejlen:

This key is already associated with an element of this collection
Avatar billede ellebaek Nybegynder
25. maj 2004 - 20:17 #19
se: 16/05-2004 17:02:06
Avatar billede plasmon Nybegynder
27. maj 2004 - 17:26 #20
til >>> 16/05-2004 17:02:06

Nej jeg mener ikke jeg har nogle værdiger som angives flere gange.

og det er stadig samme fejl.
Avatar billede ellebaek Nybegynder
27. maj 2004 - 20:34 #21
bruger mig ikke rigtig om det her:

<%
' Sætter stien på Databasen & adressen på mailserveren
domain = Request.ServerVariables("server_name")
If Request.ServerVariables("server_name") = domain Then
    'Navnet på mail-serveren
    mailserver = "mail3.cliche.dk"
    'Stien på databasen
    DatabasePath = "../db/database.mdb"
Else
    'Navnet på mail-serveren
    mailserver = "mail.dsa-net.dk"
    'Stien på databasen
    DatabasePath = "db/database.mdb"
End if
%>

Da du egentlig bare chekker om en variabel er den samme som sig selv..
Prøv at rette det indhold til:
    'Navnet på mail-serveren
    mailserver = "mail3.cliche.dk"
    'Stien på databasen
    DatabasePath = "../db/database.mdb"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester