Jeg har lavet følgende side der sletter en valgt billedfil på serveren. Imidlertid ville jeg gerne lave den således at man kunne markere flere filer af gangen og vælge "slet". <% if((Request.Form("Billede") <> "")) Then dim fs Set fs=Server.CreateObject("Scripting.FileSystemObject") fs.CreateTextFile request.Form("Billede") ,True if fs.FileExists (request.Form("Billede")) then fs.DeleteFile request.Form("Billede") response.redirect("billedoversigt.asp") else response.Write("filen blev ikke slettet") end if end if set fs=nothing %>
request.form("billede") angiver stien til ét valgt billede.
<% if((Request.Form("Billede") <> "")) Then dim fs, arrForm, i arrForm = Split(Request.Form("Billede"),",") Set fs=Server.CreateObject("Scripting.FileSystemObject")
For i = 0 To Ubound(arrForm) fs.CreateTextFile arrForm(i) ,True if fs.FileExists (arrForm(i)) then fs.DeleteFile arrForm(i) response.redirect("billedoversigt.asp") else response.Write("filen blev ikke slettet") end if Next set fs=nothing end if
Tak for indslaget i linien fs.CreateTextFile arrForm(i), True får jeg en fejlmelding med "forkert filnavn eller nummer". Diverse stier, navne mv virker nu rigtige nok. Hva kan det mon være?
jeg forstår ikke helt hvorfor den linie i det hele taget er der. Den opretter et billede, som du lige efter sletter! Prøv sådan her:
<% if((Request.Form("Billede") <> "")) Then dim fs, arrForm, i arrForm = Split(Request.Form("Billede"),",") Set fs=Server.CreateObject("Scripting.FileSystemObject")
For i = 0 To Ubound(arrForm) if fs.FileExists (arrForm(i)) then fs.DeleteFile arrForm(i) response.redirect("billedoversigt.asp") else response.Write("filen blev ikke slettet") end if Next set fs=nothing end if
Den nægter at slette mere end et billede af gangen! Billederne vælges på listmenu i en form der hedder "Billede". Det skulle vel være ok. Det virker som om den split ikke fungerer efter hensigten? Jeg er desværre ikke så meget inde i ASP at jeg kan jonglere med forskellige løsninger. Lige nu ser koden således ud: <% if((Request.Form("Billede") <> "")) Then dim fs, arrForm, i arrForm = Split(Request.Form("Billede"),",") Set fs=Server.CreateObject("Scripting.FileSystemObject") For i = 0 To Ubound(arrForm) if fs.FileExists (arrForm(i)) then fs.DeleteFile arrForm(i) end if Next set fs=nothing end if response.Redirect("billedoversigt.asp") %>
'Get the folder object associated with the directory 'Dim objFolder Set objFolder = objFSO.GetFolder("C:/Inetpub/wwwroot/pittelitten/Database/upload_gfx/")
'Response.Write "The files found in " & objFolder.Name & ":<br>"
'Loop through the Files collection 'Dim objFile For Each objFile in objFolder.Files if (right((objFile.Name),4)) <> ".asp" then Response.Write "<option>"& ("C:/Inetpub/wwwroot/pittelitten/Database/upload_gfx/") & objFile.Name & "</option>" end if Next
'Clean up! Set objFolder = Nothing Set objFile = Nothing Set objFSO = Nothing %> </select> <input name="Billede" type="submit" id="Billede" value="slet"> </p> </form>
Din sletnings kode skal rettes til så den ser sådanne ud:
<% if((Request.Form("Billede") <> "")) Then billeder = Request.Form("Billede") billeder = Replace(billeder," ","") 'Dette fjerner det mellemrum som kommer mellem , og billed navnet' dim fs, arrForm, i arrForm = Split(billeder,",") Set fs=Server.CreateObject("Scripting.FileSystemObject") For i = 0 To Ubound(arrForm) if fs.FileExists (arrForm(i)) then fs.DeleteFile arrForm(i) end if Next set fs=nothing end if response.Redirect("billedoversigt.asp") %>
<% if((Request.Form("Billede") <> "")) Then dim fs, arrForm, i, billeder billeder = Request.Form("Billede") billeder = Replace(billeder," ","") 'Dette fjerner det mellemrum som kommer mellem , og billed navnet' arrForm = Split(billeder,",") Set fs=Server.CreateObject("Scripting.FileSystemObject") For i = 0 To Ubound(arrForm) if fs.FileExists (arrForm(i)) then fs.DeleteFile arrForm(i) end if Next set fs=nothing end if response.Redirect("billedoversigt.asp") %>
Desværre virker det ik' Hvis jeg laver en response.write på slettesiden viser den filerne på en lang række med komma (uden mellemrum) imellem - der bliver ikke slettet noget! Ole
<% if ((Request.Form("Billede") <> "")) Then dim fs, arrForm, i, billeder billeder = Request.Form("Billede") billeder = Replace(billeder," ","") 'Dette fjerner det mellemrum som kommer mellem , og billed navnet' arrForm = Split(billeder,",") If IsArray(arrForm) then Response.Write "Filer der skal slettes: "& ubound(arrForm) &"<br><br>" Set fs=Server.CreateObject("Scripting.FileSystemObject") For i = lbound(arrForm) To ubound(arrForm) Response.Write "Fil "& arrForm(i) If fs.FileExists (arrForm(i)) then Rem fs.DeleteFile arrForm(i) Response.Write " blev slettet." Else Response.Write " blev ikke fundet." End if Response.Write "<br>" Next set fs=nothing Else Response.Write "Blev ikke lavet til et array" End if Else %> <form method='post' name='form'> <select name='Billede' multiple size='5'><option>fil1.asp</option><option>fil1.asp</option><option>fil1.asp</option><option>fil1.asp</option></select> <input type='submit'></form> <% End if Rem response.Redirect("billedoversigt.asp") %>
Har lige skrevet det lidt om for at få et svar på hvad der sker, men det her virker ;-)
Filer der skal slettes: 2 Jeg markerede 3 filer og fik følgende output, hvis det kan bruges til noget. Stierne er korrekte!
Fil C:/Inetpub/wwwroot/pittelitten/Database/upload_gfx/eksperiment013.jpg blev ikke fundet. Fil C:/Inetpub/wwwroot/pittelitten/Database/upload_gfx/eksperiment014.jpg blev ikke fundet. Fil C:/Inetpub/wwwroot/pittelitten/Database/upload_gfx/eksperiment015.jpg blev ikke fundet.
Prøvede med denne nye sti, hvilket ikke hjalp. Gav følgende output: Filer der skal slettes: 0
Fil C:\Inetpub\wwwroot\pittelitten\Database\upload_gfx\eksperiment013.jpg blev ikke fundet.
/Ole
Synes godt om
Ny brugerNybegynder
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.