webForumDet fria alternativet

namnbyte vid bild upload

13 svar · 491 visningar · startad av wonderwizard

wonderwizardMedlem sedan dec. 200219 inlägg
#1

detta är andra gången jag skriver om detta problemet... skickar med koden denna gången...
som det fungerar nu, så går det att ladda upp en bild..
oavsett vad bilden heter, så döps den till det namn man e inloggad som + att den lägger en kopia på bilden.. och det namnet är orginal namnet... från hårdisken.

problemet är... den uppdaterar INTE databasen... vid registrering så får man automatiskt en default.jpg bild...
den ska nu ändras till det namnet (id) som man är inloggad som...

-----------------------------

<!-- LADDA UPP BILD -->
<% IF Request.Querystring("do") = "bild" THEN
Set Upload = Server.CreateObject("Persits.Upload.1")

On Error Resume Next
Upload.OverwriteFiles = True

Upload.Save "C:/Inetpub/wwwroot/images/users"

NewName = Session("username")

If Err.Number = 8 Then
Session("message") = "Tyvärr så är bilden är större än tillåtet"
Response.Redirect "change_picture.asp?id=" &Request.Querystring("id")
Else
If Err <> 0 Then
Session("message") = "Ett fel uppstod, var god försök igen."
Response.Redirect "change_picture.asp?id=" &Request.Querystring("id")
Else
Session("message") = "Din bild är uppladdad"
End If
End If

Set File = Upload.Files("File")

For Each File in Upload.Files
IF File.ImageType <> "JPG" Then
Session("message") = "Du kan bara ladda upp .jpg bilder"
File.Delete
Response.End
END IF
File.Copy "C:/Inetpub/wwwroot/images/users/" & NewName & File.ext
File.Delete

Set connection = server.createObject("adodb.connection")
connection.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/members.mdb")&";password=losen"
SQL = "SELECT * FROM members"
set RS = Connection.Execute(SQL)
SQL = "UPDATE members Set pressbild = '"&NewName&File.ext&"' where id ="&Request.Querystring("id")
Connection.Execute(SQL)

Session("message") = "Din bild är uppladdad"
Response.Redirect "front.asp"
next
END IF%>

@ndersMedlem sedan juni 200032 969 inlägg
#2

Börja med att ta bort on error resume next ur koden, och se om koden genererar något felmeddelande.

wonderwizardMedlem sedan dec. 200219 inlägg
#3

Feltyp:
Persits.Upload.1 (0x800A001D)
Åtkomst nekad.
upload.asp, line 33
------------------------------------------
File.Delete <---- rad 33

SebbeMedlem sedan jan. 20032 285 inlägg
#4

Om du gör om raden "For Each File In Upload.Files" till "For Each strFile In Upload.Files" och gör om koden efter detta, eftersom annars både variabeln File i For-loopen och objektinstansen får samma namn (File).

solbulleMedlem sedan mars 20015 287 inlägg
#5

Du kör File.Delete sen vill du komma åt File senare i din kod. Lägg namnet i en variabel först eller kör delete senare.
Det är meningen att du ska ha två bilder till slut? Orgina lsamt kopia?
Vidare ser jag inga nackdelar med att skriva med lite luft i koden, typ:

'" & NewName & File.ext & "'

wonderwizardMedlem sedan dec. 200219 inlägg
#6

det är meningen att det endast ska finnas EN bild.... och den ska heta det man är inloggad i communityt med... inte den + en kopia av orginalnamnet...

sedan är det uppdateringen i databasen som jag har mest strul med...

solbulleMedlem sedan mars 20015 287 inlägg
#7

Upload.Save "C:/Inetpub/wwwroot/images/users"

ger väl en bild?

File.Copy "C:/Inetpub/wwwroot/images/users/" & NewName & File.ext

Ger dig väl bild nr 2

File.Delete

Ger dig inget i

SQL = "UPDATE members Set pressbild = '"&NewName&File.ext&"'

tror jag.

wonderwizardMedlem sedan dec. 200219 inlägg
#8

stämmer... men databasen uppdateras INTE

@ndersMedlem sedan juni 200032 969 inlägg
#9

Om du kommenterar bort File.Delete så borde du inte få felmeddelandet Åtkomst nekad, och då borde koden komma ner till uppdateringen av databasen. Möjligen kommer där ett nytt felmeddelande?

Och en fråga; vad använder du det här till:

SQL = "SELECT * FROM members" 
set RS = Connection.Execute(SQL)

Såvitt jag kan se, ingenting. Kasta bort!

mvh

wonderwizardMedlem sedan dec. 200219 inlägg
#10

borta... men samma sak... databasen uppdateras inte

solbulleMedlem sedan mars 20015 287 inlägg
#11

Postar formuläret till sidan med en querystring?

Mao, hur ser din "action" ut i formuläret?

@ndersMedlem sedan juni 200032 969 inlägg
#12

@nders skrev:

Om du kommenterar bort File.Delete så borde du inte få felmeddelandet Åtkomst nekad, och då borde koden komma ner till uppdateringen av databasen. Möjligen kommer där ett nytt felmeddelande?

Hur gick det med detta? Fortfarande utan on error resume next i koden.

solbulleMedlem sedan mars 20015 287 inlägg
#13

solbulle skrev:

File.Delete

Ger dig inget i

SQL = "UPDATE members Set pressbild = '"&NewName&File.ext&"'

tror jag.

wonderwizard skrev:

stämmer... men databasen uppdateras INTE

Jag vet inte ríktigt hur man ska tolka det? :l

wonderwizardMedlem sedan dec. 200219 inlägg
#14

<form method="post" name="usrPic" enctype="multipart/form-data" action="upload.asp?id=<%=Request.Querystring("id")%>&do=bild">

<input type="file" name="file" size="51">
<input name="submit" type="submit" value="ladda upp bilden">
</form>
------------------------------------------------------------------<!-- LADDA UPP BILD -->
<% IF Request.Querystring("do") = "bild" THEN
Set Upload = Server.CreateObject("Persits.Upload.1")

On Error Resume Next
Upload.OverwriteFiles = True

Upload.Save "C:/Inetpub/wwwroot/images/users"

NewName = Session("username")

If Err.Number = 8 Then
Session("message") = "Tyvärr så är bilden är större än tillåtet"
Response.Redirect "change_picture.asp?id=" &Request.Querystring("id")
Else
If Err <> 0 Then
Session("message") = "Ett fel uppstod, var god försök igen."
Response.Redirect "change_picture.asp?id=" &Request.Querystring("id")
Else
Session("message") = "Din bild är uppladdad"
End If
End If

Set File = Upload.Files("File")

For Each File In Upload.Files
IF File.ImageType <> "JPG" Then
Session("message") = "Du kan bara ladda upp .jpg bilder"
File.Delete
Response.End
END IF
File.Copy "C:/Inetpub/wwwroot/images/users/" & NewName & File.ext
File.Delete

Set connection = server.createObject("adodb.connection")
connection.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/members.mdb")&";password=losen"
SQL = "UPDATE members Set pressbild = '"&NewName&File.ext&"' where id ="&Request.Querystring("ID")
Connection.Execute(SQL)

Session("message") = "Din bild är uppladdad"
Response.Redirect "front.asp"
Next
END IF%>

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