webForumDet fria alternativet

ta bort markerade med fso

ASP

31 svar · 576 visningar · startad av antar

Medlem sedan dec. 2001289 inlägg
Frågan#1

hur gör man det nu använder jag mig utav denna kod!?

if request.querystring("tabort") = "ja" and not request.form("tabort") = "" then
Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.DeleteFile(Server.MapPath("bilder/"&request.form("tabort")))
set fso = nothing
end if
Medlem sedan mars 20002 836 inlägg
#2

Hur markerar du det som ska tas bort?
checkboxar, radiobuttons etc.

cya,
PatrikB

Medlem sedan dec. 2001289 inlägg
#3

checkboxar har bildens sökväg som värde!

Medlem sedan mars 20002 836 inlägg
#4

ok,
har alla checkboxar samma namn???

Om de har samma namn kommer deras värden att komma som en lång kommaseparerad sträng när du frågar efter dem.
Ngt liknande borde funka:

strPathsToDelete = Request.Form("myCheckBox")

arrPathToDelete = Split(strPathsToDelete)

If IsArray(arrPathToDelete) Then
'## -- finns data --
	Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

		For N = 0 TO UBound(arrPathToDelete)
			strFilePath = arrPathToDelete(N)
			'## -- delete selected file --
			objFSO.DeleteFile(strFilePath)
		Next
	Set objFSO = Nothing
Else
'## -- finns ingen data. implementera felhantering --
End If

cya,
PatrikB

Medlem sedan dec. 2001289 inlägg
#5

Körningsfel i Microsoft VBScript (0x800A0035)
Det går inte att hitta filen.

Medlem sedan mars 20002 836 inlägg
#6

Du måste ha en fysisk sökväg till filen, dvs av typen: X:\my-folder\my-file.txt

Hur ser ditt value ut i checkboxarna? är det hela fysiska sökvägen eller är det /my-folder/my-file.txt ?

Är det det senare som du har som value får du lov att köra Server.MapPath("/my-folder/my-file.txt") för att få hela den fysiska sökvägen.

cya,
PatrikB

Medlem sedan dec. 2001289 inlägg
#7

det går bara och radera en i taget?

Server.MapPath(), ASP 0173 (0x80004005)
Ett ogiltigt tecken har angetts i parametern Path för metoden MapPath.

Medlem sedan mars 20015 287 inlägg
#8

koden som du har runt mappath nu?
Vad innehåller variabeln du skickar till den? -Om du skriver ut den.

Medlem sedan dec. 2001289 inlägg
#9

så ser koden ut nu!

strPathsToDelete = Server.MapPath("bilder/"&Request.Form("tabort")&"")
arrPathToDelete = Split(strPathsToDelete)
response.write strPathsToDelete
If IsArray(arrPathToDelete) Then
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
For N = 0 TO UBound(arrPathToDelete)
strFilePath = arrPathToDelete(N)
objFSO.DeleteFile(strFilePath)
Next
Set objFSO = Nothing
End If
Medlem sedan mars 20015 287 inlägg
#10
strPathsToDelete = Server.MapPath("bilder/"&Request.Form("tabort"))
Medlem sedan mars 20015 287 inlägg
#11

Men väntra föressten, innehöll inte strPathsToDelete från början en kommaseparerad lista? I så fall måste du väl splitta den först.
Eller har du gått ifrån checkboxarna?

Medlem sedan mars 20015 287 inlägg
#12
strPathsToDelete = Request.Form("myCheckBox")

arrPathToDelete = Split(strPathsToDelete)

If IsArray(arrPathToDelete) Then
'## -- finns data --
	Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

		For N = 0 TO UBound(arrPathToDelete)
			strFilePath = arrPathToDelete(N)
			'## -- delete selected file --
			objFSO.DeleteFile(Server.MapPath("bilder/"& strFilePath))
		Next
	Set objFSO = Nothing
Else
'## -- finns ingen data. implementera felhantering --
End If

RED: Nu blev iofs variabelnamnen lite missvisande, kan vara ide att ändra.

Medlem sedan mars 20002 836 inlägg
#13

du måste ju oxå ändra så att din checkbox hämtning hämtar från rätt checkbox:

strPathsToDelete = Request.Form("[b]myCheckBox[/b]")

byt ut det så tror jag nog att det funkar =)

cya,
PatrikB

Medlem sedan dec. 2001289 inlägg
#14

nu får jag ut det här!

Körningsfel i Microsoft VBScript (0x800A0035)
Det går inte att hitta filen.

Medlem sedan dec. 2001289 inlägg
#15

jag skrev fel på sökvägen!
nu får jag det här när jag försöker rade två st sammtidigt

Server.MapPath(), ASP 0173 (0x80004005)
Ett ogiltigt tecken har angetts i parametern Path för metoden MapPath.
Medlem sedan mars 20015 287 inlägg
#16

Skriv ut strFilePath så vi får se vad den nu innehåller för knasigt tecken.

Medlem sedan dec. 2001289 inlägg
#17

hur gör jag det?

Medlem sedan mars 20015 287 inlägg
#18

response.write strFilePath

Samt att du kanske måste utkommentera raden:

'objFSO.DeleteFile(Server.MapPath("bilder/"& strFilePath))

Medlem sedan dec. 2001289 inlägg
#19

får det här
test2.jpg,test.jpg

Medlem sedan mars 20015 287 inlägg
#20

Hm, då har inte arrayen splittats... använder du den kod som är postad lite högre upp? ( http://www.webforum.nu/showthread.php?s=&postid=473991#post473991 )

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)