Avatar billede canedo Nybegynder
03. februar 2005 - 10:37 Der er 8 kommentarer og
1 løsning

Slet flere filer på serveren

Med nedenstående finder jeg frem til hvilke records i min database jeg vil slette med udgangspunkt i nogle felter med datoer (tekstfelter). Jeg finder frem til de rigtige records, og de bliver slettet rigtig nok, men den vil ikke slette billederne på serveren.



------------------
sletID = ""

if not rs.eof then
  Set fs = Server.CreateObject("Scripting.FileSystemObject")
  do while not rs.eof
    blnSlet = false
    id = rs("brugerID")
    fototype = rs("fotoType")
    foto = "/billeder/" & id & "." & fototype
    ' hent og split dato
    ss = rs("datosidstSet")
    mdr2 = CInt(mid((ss),6,2))
    aar2 = CInt(left((ss),4))
    dag2 =CInt(mid((ss),9,2))
    ' tjek dato
    if aar2 < aar1 then
        blnSlet = true
    elseif aar2 = aar1 and mdr2 < mdr1 then
        blnSlet = true
    elseif aar2 = aar1 and mdr2 = mdr1 and dag2 <= dag1 then
        blnSlet = true
    end if
    ' sletter billed og noterer id
    if blnSlet = true then
      sletID = sletID & id & ", "
      if fs.FileExists(Server.Mappath(foto)) then
          fs.DeleteFile(Server.Mappath(foto))
      end if
    end if
    rs.movenext
  loop
  set fs = nothing
end if
rs.close
------------------

Der er rettigheder til det på mappen med billeder, så det er ikke derfor.

Hvorfor forsvinder billederne ikke? stien er angivet korrekt, da dette her script virker med success et andet sted:

filnavn = "/billeder/" & id & "." & fotoType
Set fs=Server.CreateObject("Scripting.FileSystemObject")
if fs.FileExists(Server.Mappath(filnavn)) then
  fs.DeleteFile(Server.Mappath(filnavn))
end if
set fs=nothing
Avatar billede keysersoze Ekspert
03. februar 2005 - 10:52 #1
der er en nogle if'er som kan gøre det svært at overskue - men prøv at udskrive nogle hjælpevariabler og se om scriptet i det hele taget når dertil.

if not rs.eof then
  Set fs = Server.CreateObject("Scripting.FileSystemObject")
  do while not rs.eof
    blnSlet = false
    id = rs("brugerID")
    fototype = rs("fotoType")
    foto = "/billeder/" & id & "." & fototype
    ' hent og split dato
    ss = rs("datosidstSet")
    mdr2 = CInt(mid((ss),6,2))
    aar2 = CInt(left((ss),4))
    dag2 =CInt(mid((ss),9,2))
    ' tjek dato
    if aar2 < aar1 then
        blnSlet = true
    elseif aar2 = aar1 and mdr2 < mdr1 then
        blnSlet = true
    elseif aar2 = aar1 and mdr2 = mdr1 and dag2 <= dag1 then
        blnSlet = true
    end if
    ' sletter billed og noterer id
    if blnSlet = true then
      Response.write "nu er jeg her"
      sletID = sletID & id & ", "
      if fs.FileExists(Server.Mappath(foto)) then
          response.write "og nu er jeg her"
          fs.DeleteFile(Server.Mappath(foto))
      end if
    end if
    rs.movenext
  loop
  set fs = nothing
end if
rs.close
Avatar billede canedo Nybegynder
03. februar 2005 - 11:03 #2
skal jeg sende hele siden? (ca dobbelt så lang)... Så kan du se alle mine regler og loopen og det hele...
Avatar billede keysersoze Ekspert
03. februar 2005 - 11:14 #3
nah - bare prøv at se hvor langt den når i dine if-sætninger. Udskriver den ingenting med ovenstående eller kun én af sætningerne kan du let komme videre - udskriver den begge sætninger er det noget andet der skal ledes efter
Avatar billede canedo Nybegynder
03. februar 2005 - 11:17 #4
jamen jeg udskriver alle de id'er der skal udskrives længere nede på siden - så så langt når den, men jeg prøver lige at køre en test med det du har skrevet...
Avatar billede canedo Nybegynder
03. februar 2005 - 11:23 #5
kørslen sagde:

nu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg hernu er jeg her Id der er slettet:
8, 103, 104, 105, 106, 108, 109, 251, 110, 111, 112, 113, 114, 116, 117, 120, 121, 122, 309, 311, 123, 124, 125, 128, 129, 130, 131, 133, 134, 144, 145, 203, 234, 136, 137, 138, 139, 140, 142, 143, 146, 147, 148, 149, 151, 152, 154, 155, 156, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 175, 176, 178, 179, 180, 181, 183, 184, 236, 185, 186, 188, 189, 190, 191, 192, 193, 194, 195, 196, 198, 200, 202, 204, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 217, 247, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 237, 238, 239, 240, 241, 242, 244, 245, 246, 248, 249, 252, 254, 304, 256, 257, 258, 259, 260, 263, 264, 266, 268, 269, 270, 271, 272, 310, 312, 274, 276, 277, 278, 279, 281, 282, 284, 286, 288, 289, 291, 292, 294, 295, 296, 297, 298, 302, 303, 305, 306, 308, 313, 314, 318, 320, 325, 319, 323, 324, 326, 327, 329, 330, 332, 335, 336, 337, 338, 339, 340, 341, 342

--------
der er ikke noget "og nu er jeg her", men hvorfor ikke?
Avatar billede keysersoze Ekspert
03. februar 2005 - 11:41 #6
fordi filen ikke findes der hvor du angiver den til.

prøv efter
Response.write "nu er jeg her"
at skrive
response.write Server.Mappath(foto)
og se om det passer med stien.

Det andet script du snakker om hvor det virker - ligger den i samme mappe som denne fil?
Avatar billede canedo Nybegynder
03. februar 2005 - 12:19 #7
Det andet script ligger et andet sted... jeg har fået den til at skrive stien nu, og har ændret den så det passer nødagtigt til stien. Sådan skriver den ud for hver fil, som skal slettes:

d:\web\domæne.dk\www\test\www\billeder\8.GIFnu er jeg her

Men efter kørslen er filen stadig ikke slettet... alle filerne bliver liggende, men det er den rigtige placering...
Avatar billede canedo Nybegynder
03. februar 2005 - 12:20 #8
sorry, nu virker det :o) glemte at refreshe mappen. Læg et svar!
Avatar billede keysersoze Ekspert
03. februar 2005 - 12:30 #9
netop :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester