29. marts 2006 - 14:46Der er
15 kommentarer og 1 løsning
Slet flere filer af gangen
Hej Jeg har en kode der ser sådan ud, og den virker fint, men mit spørgsmål er - med denne kode sletter man en fil af gangen, kan man lave det således at man markerer flere filer af gangen og sletter dem alle på en gang ? <% vPath = "filer/XX" pPath = Server.MapPath( vPath )
Set fs = Server.CreateObject( "Scripting.FileSystemObject" )
Set myFolder = fs.GetFolder( pPath ) if Request.QueryString("slet") <> "" then fs.DeleteFile(Server.Mappath(Request.QueryString("slet"))) end if %> <html>
<head> <title>Test slet</title> </head>
<body>
<table BORDER="1" bgcolor="#E6E6E6" cellspacing="0" cellpadding="10" bordercolor="#FFFFFF" width="560"> <tr> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" colspan="4" width="538"><strong><br> Klik på linket under navn for at åbne filen.</strong></td> </tr> <tr> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="133"><b>Dato:</b></td> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="194"><b>Navn:</b></td> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="66"><b>Størrelse:</b></td> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="41"><b>Slet filen </b></td> </tr> <% For Each thing in myFolder.Files %> <tr> <td WIDTH="133"> <%=thing.DateLastModified %></td> <td WIDTH="194"> <a href="filer/XX/<%=thing.Name%>" target="_blank"><%=thing.Name%></a></td> <td WIDTH="66"> <%=thing.Size %> </td> <td WIDTH="41"> <a href="?slet=<% =vPath & "/"& thing.Name%>">Slet</a></td> </tr> <% Next %> </table>
<p><br> <% Dim strPath Dim objFSO Dim objFolder Dim objItem
strPath = "filer/XX"
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Server.MapPath(strPath)) %></p> </body> </html>
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Set fs = Server.CreateObject( "Scripting.FileSystemObject" )
Set myFolder = fs.GetFolder( pPath ) filnavne = split(Request.Form("sletning"),",") for each filnavn in filnavne if filnavn <> "" then fs.DeleteFile(Server.Mappath(filnavn)) end if loop %> <html>
<head> <title>Test slet</title> </head>
<body>
<form method="post"> <table BORDER="1" bgcolor="#E6E6E6" cellspacing="0" cellpadding="10" bordercolor="#FFFFFF" width="560"> <tr> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" colspan="4" width="538"><strong><br> Klik på linket under navn for at åbne filen.</strong></td> </tr> <tr> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="133"><b>Dato:</b></td> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="194"><b>Navn:</b></td> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="66"><b>Størrelse:</b></td> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="41"><b>Slet filen </b></td> </tr> <% For Each thing in myFolder.Files %> <tr> <td WIDTH="133"> <%=thing.DateLastModified %></td> <td WIDTH="194"> <a href="filer/XX/<%=thing.Name%>" target="_blank"><%=thing.Name%></a></td> <td WIDTH="66"> <%=thing.Size %> </td> <td WIDTH="41"> <input type="checkbox" value="<%=thing.Name%>" name="sletning"></td> </tr> <% Next %> </table> <p><input type="submit" value="Slet valgte"></p> </form> <% Dim strPath Dim objFSO Dim objFolder Dim objItem
strPath = "filer/XX"
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Server.MapPath(strPath)) %> </body> </html>
Det kan da godt være det var en idé at starte koden med at checke om der er tale om et "postback":
<% if ucase(Request.ServerVariables("REQUEST_METHOD")) = "POST" then vPath = "filer/XX" pPath = Server.MapPath( vPath )
Set fs = Server.CreateObject( "Scripting.FileSystemObject" )
Set myFolder = fs.GetFolder( pPath ) filnavne = split(Request.Form("sletning"),",") for each filnavn in filnavne if filnavn <> "" then fs.DeleteFile(Server.Mappath(filnavn)) end if loop end if %>
Synes godt om
Slettet bruger
30. marts 2006 - 09:22#3
Undskyld mit sene svar, men desværre virker det ikke og jeg kan ikke se hvorfor, jeg får bare en Intern serverfejl
Så skal du have fjernet en afkrydsning i dine internet indstillinger.
I IE vælger du funtioner / internet indstillinger og i den dialog avanceret-fanen. På den fane er der en liste med indstillinger og i den første sektion (Gennemse hedder den vist), skal du fjerne afkrydsningen ud for den linie hvor der står noget med "Vis venlige HTTP fejlbeskeder"...
Dette burde vise dig mere detaljerede oplysninger om de fejl der opstår på serveren.
Synes godt om
Slettet bruger
30. marts 2006 - 10:21#5
Den er slået til, men jeg får stadig kun den samme fejl, virker det hos dig ?
Set fs = Server.CreateObject( "Scripting.FileSystemObject" )
Set myFolder = fs.GetFolder( pPath ) filnavne = split(Request.Form("sletning"),",") for each filnavn in filnavne if filnavn <> "" then fs.DeleteFile(Server.Mappath(filnavn)) end if next %>
Synes godt om
Slettet bruger
30. marts 2006 - 10:39#9
Nu får jeg denne fejl, når jeg vælger et par filer der skal slettes: Microsoft VBScript runtime error '800a0035'
File not found
testslet2.asp, line 11
og linie 11 er denne: fs.DeleteFile(Server.Mappath(filnavn))
Set fs = Server.CreateObject( "Scripting.FileSystemObject" ) Set myFolder = fs.GetFolder( pPath )
if ucase(Request.ServerVariables("REQUEST_METHOD")) = "POST" then filnavne = split(Request.Form("sletning"),",") for each filnavn in filnavne if filnavn <> "" then fs.DeleteFile(Server.Mappath(vPath & filnavn)) end if next end if %> <html>
<head> <title>Test slet</title> </head>
<body>
<form method="post"> <table BORDER="1" bgcolor="#E6E6E6" cellspacing="0" cellpadding="10" bordercolor="#FFFFFF" width="560"> <tr> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" colspan="4" width="538"><strong><br> Klik på linket under navn for at åbne filen.</strong></td> </tr> <tr> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="133"><b>Dato:</b></td> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="194"><b>Navn:</b></td> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="66"><b>Størrelse:</b></td> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="41"><b>Slet filen </b></td> </tr> <% For Each thing in myFolder.Files %> <tr> <td WIDTH="133"> <%=thing.DateLastModified %></td> <td WIDTH="194"> <a href="<%=vPath & thing.Name%>" target="_blank"><%=thing.Name%></a></td> <td WIDTH="66"> <%=thing.Size %> </td> <td WIDTH="41"> <input type="checkbox" value="<%=thing.Name%>" name="sletning"></td> </tr> <% Next %> </table> <p><input type="submit" value="Slet valgte"></p> </form> </body> </html>
NB: filnavnene må i øvrigt ikke indeholde komma, da dette er separator, hvis man angiver samme navn for flere kontroller i en webform.
Synes godt om
Slettet bruger
30. marts 2006 - 11:01#11
Det virker delvist, hvis jeg klikker på knappen Slet valgte, får jeg samme fejl som før hvis jeg klikker på opdater siden sletter den filerne ?
Set fs = Server.CreateObject( "Scripting.FileSystemObject" ) Set myFolder = fs.GetFolder( pPath )
if ucase(Request.ServerVariables("REQUEST_METHOD")) = "POST" then filnavne = split(Request.Form("sletning"),",") for each filnavn in filnavne filnavn = trim(filnavn) if filnavn <> "" then sletSti = Server.Mappath(vPath & filnavn) fs.DeleteFile(sletSti) end if next ' Genopfrisk siden så F5 ikke forsøger at slette igen... Response.Redirect Request.ServerVariables("SCRIPT_NAME") end if %> <html>
<head> <title>Test slet</title> </head>
<body>
<form method="post"> <table BORDER="1" bgcolor="#E6E6E6" cellspacing="0" cellpadding="10" bordercolor="#FFFFFF" width="560"> <tr> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" colspan="4" width="538"><strong><br> Klik på linket under navn for at åbne filen.</strong></td> </tr> <tr> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="133"><b>Dato:</b></td> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="194"><b>Navn:</b></td> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="66"><b>Størrelse:</b></td> <td bgcolor="#AFB9CA" bordercolor="#FFFFFF" width="41"><b>Slet filen </b></td> </tr> <% For Each thing in myFolder.Files %> <tr> <td WIDTH="133"> <%=thing.DateLastModified %></td> <td WIDTH="194"> <a href="<%=vPath & thing.Name%>" target="_blank"><%=thing.Name%></a></td> <td WIDTH="66"> <%=thing.Size %> </td> <td WIDTH="41"> <input type="checkbox" value="<%=thing.Name%>" name="sletning"></td> </tr> <% Next %> </table> <p><input type="submit" value="Slet valgte"></p> </form> </body> </html>
Synes godt om
Slettet bruger
30. marts 2006 - 11:39#14
Helt perfekt, tusind tak for hjælpen. Læg et svar så får du dine velfortjente point.
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.