26. marts 2004 - 18:29Der 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)
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?
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.
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.