Avatar billede moso Nybegynder
11. juli 2004 - 22:54 Der er 14 kommentarer og
1 løsning

Slette billede fra server ved at klikke på det?

Jeg vil gerne slette et billede fra serveren ved at klikke på det. Er der nogen derude der har en go' ide til hvordan det kan lade sig gøre?
Avatar billede kbonline Nybegynder
12. juli 2004 - 00:24 #1
Slette en fil fra serveren ? puha det kræver vel et CGI eller Perl script. Og en sindsyg godtroede webhotel udbyder :-)

Kan du ikke nøjes med at slette linket via en database, så billedet ikke bliver kaldt?
strSQL = "Delete * from billeder Where ID= " & Request("ID")
???
Avatar billede hansdam Nybegynder
12. juli 2004 - 08:24 #2
Her sletter du billedet både fra databasen, og fra serveren
Du skal bare lave en ny side eks. sletpic.asp og så skal den side kaldes med ID og billedenavn i Querystringen
Eks på knap der gør det: <input type="button" name="delpic" value="Slet billede" onclick="location.href='sletpic.asp?ID=<%=rs("ID")%>&picname=<%=rs("picname")%>'" />

I sletpic.asp står der:

Dim Billednavn, BilledID, DinDatabase, TabelNavn, KolonneNavn, MappeMedBilleder, VidereSendesTil

Billednavn = Request.Querystring("picname")
BilledID = Request.Querystring("ID")
DinDatabase = "DB/Billeder.mdb"
TabelNavn = "Pics"
KolonneNavn = "ID"
MappeMedBilleder = "Billeder/"
VidereSendesTil = "Default.asp"

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath (DinDatabase)

strSQL = "Delete * From " & TabelNavn & " Where " & KolonneNavn & " = " & BilledID
Set rs = Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing

Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.DeleteFile (Server.Mappath(MappeMedBilleder & "/" & Billednavn))

Response.redirect VidereSendesTil

Slut :)

/Hans
Avatar billede moso Nybegynder
12. juli 2004 - 08:55 #3
Jeg har nogenlunde styr på databasemulighederne, men det er nu meningen at jeg skal kunne slette det helt fra serveren.
Der bliver uploaded mange billeder og der ville være lettere at holde styr på hvis jeg bare kan "klikke og slette".
Avatar billede moso Nybegynder
12. juli 2004 - 09:01 #4
Hans: Jeg kan ikke helt finde ud af hvad jeg skal bruge fra dit eksempel, kan du uddybe?
Avatar billede hansdam Nybegynder
12. juli 2004 - 09:04 #5
<img src="<%=rs("picname")%>" alt="klik og slet" onclick="location.href='sletpic.asp?picname=<%=rs("picname")%>'" />

sletpic.asp:

Dim Billednavn, MappeMedBilleder, VidereSendesTil

Billednavn = Request.Querystring("picname")
MappeMedBilleder = "Billeder/"
VidereSendesTil = "Default.asp"

Set fso = Server.CreateObject("Scripting.FileSystemObject") ' Åbner FileSystemObject
fso.DeleteFile (Server.Mappath(MappeMedBilleder & Billednavn)) 'Sletter filen, hvor du har defineret MappeMedBilleder, og billednavn

Response.redirect VidereSendesTil 'sendes videre...

slut...

Sådan bare? Nu sletter den billedet som ligger i MappeMedBilleder mappen og billedet ved navn Billednavn og sendes videre til VidereSendesTil
Ikke noget med database mere...
Er du med?

/Hans
Avatar billede moso Nybegynder
12. juli 2004 - 09:14 #6
Det var hurtigt! Jeg kigger på det...
Avatar billede ducks Nybegynder
12. juli 2004 - 19:26 #7
kbonline > I PHP kræver det 1 linje ;)

Jeg vil tro du kan slette det med FSO, se http://www.sloppycode.net/fso/?m=105
Avatar billede lassebrosolatjensen Nybegynder
15. juli 2004 - 00:03 #8
Hej Hans Dam
Jeg har prøvet din kode (sletpic.asp), men får følgende fejl:
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "ID =".

Kan du se ud fra det her hvad jeg gør forkert?
MVH
Lasse
Avatar billede hansdam Nybegynder
15. juli 2004 - 08:31 #9
Det ser ud som om du ikke har defineret ID'en i Querystringen, når du linker til billedet...
Linket til det billede du skal slette, kan se sådan ud:
sletpic.asp?ID=143&picname=adghsfjd.jpg
(Hvis det er den kode hvor du også sletter fra databasen, eller skal du bare slette ID=143&, og så skulle det virke
Avatar billede lassebrosolatjensen Nybegynder
15. juli 2004 - 11:10 #10
Hej Hans Dam
Er der mulighed for at du kan sende en/henvise til en tutorial da jeg er nybegynder og ikke kan få "skidtet" til at virke. (har prøvet det du skrev men kan ikke få det til at virke)(har selv googlet efter tutorials på dette emne uden at kunne finde nogen)
MVH
Lasse
lasse.jensen@rudekuvert.dk
Avatar billede moso Nybegynder
20. juli 2004 - 12:01 #11
Så lykkedes det!
Denne kode skulle gerne vise alle billeder i en bestemt mappe.
Det kører i asp og det eneste problem er at man ikke kan opdatere siden bagefter.

Here goes:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Alle billeder</title>
</head>

<body>
<% If Request.QueryString("picname")<>"" Then %>
<%  Dim Billednavn, MappeMedBilleder

Billednavn = Request.Querystring("picname")
MappeMedBilleder = "/admin/images/uploaded_images/" ' Stien til den mappe der indeholder billedet du vil slette

Set fso = Server.CreateObject("Scripting.FileSystemObject") ' Åbner FileSystemObject
fso.DeleteFile (Server.Mappath(MappeMedBilleder & Billednavn)) 'Sletter filen, hvor du har defineret MappeMedBilleder, og billednavn
%>
<% End If %>


  <%
dim jm_fso, jm_file, jm_types, jm_path, jm_folder,jm_show,jm_i,jm_ext
jm_ext=true
jm_path = "uploaded_images" ' Sti til mappen med billeder der skal vises
jm_types = split(replace("jpeg, jpg, gif"," ",""),",") ' Her angives hvilke filtype der skal vises
Set jm_fso = Server.CreateObject("Scripting.FileSystemObject")
Set jm_folder = jm_fso.GetFolder(Server.MapPath(jm_path))
response.Write("<table border=""0"" cellspacing=""6"">")

For Each jm_file in jm_folder.Files
jm_show=false
for jm_i=0 to ubound(jm_types,1)
If lcase(right(jm_file.name,3)) = jm_types(jm_i) then jm_show=true
next
If jm_show=true then
%>

<tr>
  <td><a href="show_images.asp?picname=<%= jm_File.Name %>" onclick="return confirm('Er du sikker på at du vil slette billedet: <%= jm_File.Name %>?');"><img src="uploaded_images/<%= jm_File.Name %>" alt="Slet: <%= jm_File.Name %>?" border="0" ></a></td>
<td><%= jm_File.Name %> </td>
</tr>

<%
end if
next
%>
</table>
<%
set jm_file=nothing
set jm_folder = nothing
set jm_fso=nothing%>
<br>
</body>
</html>
Avatar billede moso Nybegynder
20. juli 2004 - 12:02 #12
Point til hansdam , det er din kode der bruges i den endelige løsning - tak for hjælpen.
Avatar billede hansdam Nybegynder
20. juli 2004 - 12:17 #13
Hej moso, tak for points :)
Jeg går ud fra at du ikke kan opdatere siden, når du har slettet et billede..?
Det gør du bare ved at sætte en redirect ind efter du har slettet billedet. så kommer koden hvor du sletter sådan ud:
<% If Request.QueryString("picname")<>"" Then %>
<%  Dim Billednavn, MappeMedBilleder

Billednavn = Request.Querystring("picname")
MappeMedBilleder = "/admin/images/uploaded_images/" ' Stien til den mappe der indeholder billedet du vil slette

Set fso = Server.CreateObject("Scripting.FileSystemObject") ' Åbner FileSystemObject
fso.DeleteFile (Server.Mappath(MappeMedBilleder & Billednavn)) 'Sletter filen, hvor du har defineret MappeMedBilleder, og billednavn

Response.redirect "show_images.asp" 'Sender brugeren væk fra slet sektionen (Querystringen = picname)
%>
<% End If %>
Avatar billede moso Nybegynder
20. juli 2004 - 12:20 #14
Super - jeg sad netop ok tænkte på hvordan jeg lige kom udenom det problem. Takker..
Avatar billede Slettet bruger
21. november 2005 - 10:34 #15
Hvordan vil scriptet se ud i c#?
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