webForumDet fria alternativet

Bygga in delete funktion

ASP

7 svar · 373 visningar · startad av medialabs

Medlem sedan mars 20023 686 inlägg
Frågan#1

Hejsan,

Använder Fso för att lista alla filer i den aktuella mappen & det funkar, men nu skulle jag vilja ha en 'deletefunktion', en knapp vid varje fil som jag ska kunna klicka på och så raderas bilden,

har sök efter deletefunktion men inte hittat exakt det jag söker efter, kan tilläggas att jag inte är så hajj på fso/asp, men det visste ni säkert redan :e

<% 
set fso = server.createobject("scripting.filesystemobject") 
set folder = fso.getFolder(server.mappath("uploaddoc/")) 
set files = folder.files 

for each Item in files 

response.write "<a href ='/uploaddoc/"& Item.name &"'> "& Item.name &" <br>" 

Next 

set folder = nothing 
set fso = nothing 
set files =nothing 
%>
Medlem sedan feb. 200269 inlägg
#2

OM du gör en fil som heter delete.asp eller liknande där du får
filens namn via en querystring så kan det se ut ungefär som:

Dim bildnamn, filpath, objDel

bildnamn = Request.Querystring("bildnamn")

filpath= Request.ServerVariables( "APPL_PHYSICAL_PATH" )  & bildnamn

Set objDel = Server.CreateObject("Scripting.FileSystemObject")
if objDel.FileExists(filpath) then
objDel.DeleteFile(filpath)
end if
set objDel = nothing
Medlem sedan mars 20023 686 inlägg
#3

Nja, det blev lite för avancerat för mig.

Medlem sedan mars 20015 287 inlägg
#4

På vilket sätt blev det för avancerat?

Medlem sedan mars 20023 686 inlägg
#5

Har försökt nu ett tag men inte fått det att funka, så här långt har jag kommit, nu får någon annan ta över och visa vart skåpet ska stå :)

(filen heter dokument.asp)

<% 
set fso = server.createobject("scripting.filesystemobject") 
set folder = fso.getFolder(server.mappath("uploaddoc/")) 
set files = folder.files 

for each Item in files 

response.write "<a href ='/uploaddoc/"& Item.name &"'> "& Item.name &"</a> || <a href='dokument.asp?fil="& Item.name &"'>Ta bort</a><br>" 

Next 

set folder = nothing 
set fso = nothing 
set files =nothing 

%>

<%

Dim fil, filpath, objDel

fil = Request.Querystring("fil")

filpath= Request.ServerVariables( "H:\medialabs.se\html\asp\uploaddoc\" ) & fil

Set objDel = Server.CreateObject("Scripting.FileSystemObject")
if objDel.FileExists(filpath) then
objDel.DeleteFile(filpath)
end if
set objDel = nothing

%>
Medlem sedan mars 20015 287 inlägg
#6
filpath=  "H:\medialabs.se\html\asp\uploaddoc\"  & fil

Om du föredrar att hårdkoda.
Annars funkar väl:

filpath=  server.mappath("uploaddoc") & "\" & fil
Medlem sedan mars 20023 686 inlägg
#7

solbulle skrev:

filpath=  "H:\medialabs.se\html\asp\uploaddoc\"  & fil

Om du föredrar att hårdkoda.

Det funkar perfekt nu, tackar och bugar inför min gud solbulle

Medlem sedan dec. 19996 721 inlägg
#8

...och som i alla fall där man har en länk som tar bort något så bör man ha någon slags kontroll, så att t.ex. en sökrobot inte raderar alla filer.

t.ex.

onClick="return (confirm('Radera denna fil?') ? this.href+='&dodelete=1' : false);"

och sedan kolla att request.querystring("dodelete")="1" innan man utför raderingen.

265 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)