Hej! Testa denna Dett är et mycket farligt exempel. Efter som man kan ta bort vilken fil som helst från enheten som IIS kontot har rättighet till. Ok, har inte hunnit prova men det ska nog bli bra, ... För att vara på den säkra sidan, det senare inlägget var det bättre ur säkerhetssynpunkt? Mitt exempel är begränsar till angiven katalog. Vilket det första exemplet inte är.Ta bort fil från server med ASP
Jag har ett intranät där filer kan skickas upp utav användarna, exempelvis bilder PDF doks mm. Dessa tillhör i regel en artikel eller liknande. När artikeln i fråga ska försvinna från intranätet pga. inaktualitet eller liknande så vill jag inte heller att filen ska vara kvar och skräpa på servern.
Kort sagt: Har någon en lösning på hur man skriver i ASP för att deleta filer från en server?
//mvh KrizSv: Ta bort fil från server med ASP
<code>
<%
Set Obj = CreateObject("Scripting.FileSystemObject")
filen = Request.Form("filen")
IF filen <> "" THEN
set f=Obj.GetFile(Server.MapPath("../filer/" & filen))
f.Delete
set f = nothing
END IF
%>
<form action="admin.asp" method="post">
<select name="filen">
<%
Set Foldern = Obj.GetFolder(Server.MapPath("/"))
Set FolderFiles = Foldern.Files
FOR EACH File in FolderFiles
filename = File.NAME
%>
<option value="/<%=filename%>"><%=filename%>
<%
NEXT
set Obj = nothing
%>
</select>
</form>
</code>Sv: Ta bort fil från server med ASP
T.Ex. Genom att skriva: ..\..\..\Windows\Viktigfil.txt
Anväd då istället:
<code>
<form action="" method="post">
<select name="filename">
<%
Dim FSO
Dim Folder
Dim filename
Dim deletefile
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(Server.MapPath("."))
If Request.Form("action") = "delete" Then
deletefile = Request.Form("filename")
For Each File in Folder.Files
filename = File.Name
If filename = deletefile Then
File.Delete
Else
Response.Write "<option value=""" & Server.HTMLEncode(filename) & """>" & Server.HTMLEncode(filename) & "</option>"
End If
Next
Else
For Each File in Folder.Files
filename = File.Name
Response.Write "<option value=""" & Server.HTMLEncode(filename) & """>" & Server.HTMLEncode(filename) & "</option>"
Next
End If
Set Obj = nothing
%>
</select>
<input type="submit" name="action" value="delete">
</form>
</code>Sv: Ta bort fil från server med ASP
//Dr KSv: Ta bort fil från server med ASP