webForumDet fria alternativet
Logga in / Bli medlem

namnbyte vid bild upload

ASP

13 svar · 493 visningar · startad av wonderwizard

Medlem sedan dec. 200219 inlägg
Trådstart#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%>

Medlem sedan juni 200032 967 inlägg
#2

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

Medlem sedan dec. 200219 inlägg
#3

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

Medlem 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).

Medlem 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 & "'

Medlem 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...

Medlem 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.

Medlem sedan dec. 200219 inlägg
#8

stämmer... men databasen uppdateras INTE

Medlem sedan juni 200032 967 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

Medlem sedan dec. 200219 inlägg
#10

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

Medlem sedan mars 20015 287 inlägg
#11

Postar formuläret till sidan med en querystring?

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

Medlem sedan juni 200032 967 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.

Medlem 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

Medlem 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%>

384 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
129 ms — hämta statistik (db)
130 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)