Avatar billede mrjowns Novice
26. marts 2004 - 18:29 Der er 6 kommentarer og
1 løsning

ASPUpload - For Each-løkke virker ikke

Nu har jeg snart prøvet det hele. Laver jeg

response.write "bla"
response.end

efter "For Each..." bliver den ikke skrevet ud, hvilket jo tyder på at koden ikke bliver kørt.

Her er min kode:

<%
Set Upload = Server.CreateObject("Persits.Upload")
Upload.OverwriteFiles = False

    For Each File in Upload.Files

    if Request("optnew") = "N" then

      Set rs= Server.CreateObject("ADODB.Recordset")
      SQL = "SELECT item_img FROM shop_item WHERE id = '" & Request("id") & "'"
      Set rs = MySQLConn.Execute(SQL)

      Set fso = Server.CreateObject("Scripting.FileSystemObject")
      fso.DeleteFile ("d:\web\xxx.dk\www\files\" & rs("item_img"))

      Upload.Save("d:\web\xxx.dk\www\files")
   
      SQL1 = "UPDATE shop_item SET item_img = '" & File.FileName & "' WHERE id = '" & Request("id") & "'"
      MySQLConn.Execute(SQL1)
   
      Set fso = Nothing

      rs.Close
      Set rs = Nothing

    else
   
      Upload.Save("d:\web\xxx.dk\www\files")
   
      SQL1 = "UPDATE shop_item SET item_img = '" & file.FileName & "' WHERE id = '" & Request("id") & "'"
      MySQLConn.Execute(SQL1)

    end if

    next

MySQLConn.Close
Set MySQLConn = Nothing

%>

Håber nogen kan hjælpe!
Avatar billede eagleeye Praktikant
26. marts 2004 - 19:00 #1
Du mangler at kalde .save eller .savetomemory inden dit loop for filerne loades.

Sdåan her:

<%
Set Upload = Server.CreateObject("Persits.Upload")
Upload.OverwriteFiles = False
Upload.SaveToMemory

    For Each File in Upload.Files
Avatar billede eagleeye Praktikant
26. marts 2004 - 19:01 #2
Hvis .SaveToMemory ikke virker så prøv med .Save uden nogen sti angivet, da de nyere version er ikke har SaveToMemory:

<%
Set Upload = Server.CreateObject("Persits.Upload")
Upload.OverwriteFiles = False
Upload.Save

    For Each File in Upload.Files
Avatar billede mrjowns Novice
27. marts 2004 - 01:34 #3
Tja, det (Save) fik da scriptet til at gå igang med For Each-løkken, men kun så der kunne opstå et problem i den førstkommende linie:

if Request("optnew") = "N" then

giver denne fejl:

Request object error 'ASP 0208 : 80004005'
Cannot use generic Request collection
/butik/item_imgupload.asp, line 7
Cannot use the generic Request collection after calling BinaryRead.

...og jeg kan egentlig godt forstå fejlen, men jeg har ikke rigtig nogen anelse om hvordan jeg ellers skal gøre! Har du nogen ideer Eagleeye?
Avatar billede eagleeye Praktikant
27. marts 2004 - 10:44 #4
Ja jeg har et par stykker :)
Når man vil hente det indtastet i et form felt, skriver man normalt Request.Form("navnet") men når man bruger Upload script kan man ikke bruge Request.Form man skal bruge upload komponentens form collection så man skal skrive nanvet på upload objectet i stedet for Request, rest .Form("navnet") er det samme så prøv at rette:

if Request("optnew") = "N" then

til:

if Upload.Form("optnew") = "N" then



Hvis "optnew" er en qyerystring altså i linket xxx.asp?optnew=N så skal man skrive Request.QueryString da man med Request faktisk både kalder Request.Form og Request.Querystring på en gang.
Avatar billede eagleeye Praktikant
27. marts 2004 - 10:45 #5
hov, hvis det var en querystring så ret:
if Request("optnew") = "N" then
til:
if Request.Querystring("optnew") = "N" then
Avatar billede mrjowns Novice
27. marts 2004 - 12:39 #6
Tak eagleeye - ved at flytte lidt rundt på tingene fik jeg det til at virke! Laver du lige et svar?
Avatar billede eagleeye Praktikant
27. marts 2004 - 12:40 #7
Ok det gør jeg da :)
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