Avatar billede silentbob Nybegynder
10. april 2003 - 09:04 Der er 1 kommentar og
1 løsning

Optimering: Hvordan slettes fysisk filer, der ikke findes i db ?

Hej Alle, jeg har lavet en side hvor man kan uploade billeder og derefter give dem værdier i en database, fx tekst og overskrift, men da der altid kan gå et eller andet galt,
har jeg lavet en side, der fysisk tjekker om filen findes i databasen og jeg ville høre om andre har en smartere måde at skrive det på:

Det er med andre ord en optimeringsopgave. Jeg har ikke den store rutine i brug af Filesystem.

Kode:
<!--#include file = "incforbindelse.asp"-->
<%
dim aspdir, fs, folder, files, aspfile
aspdir = "/images"
set fs = createobject("scripting.filesystemobject")
set folder = fs.getfolder(server.mappath(aspdir))
set files = folder.files

for each aspfile in files
' response.write aspdir & "/" &  aspfile.name & "<br>"

rs.open "select billede from table", conn, adopenstatic, adlockoptimistic, adcmdtext 'table eller text
dim tal
tal = 0

do while not rs.eof
if not aspfile.name = rs("billede") then
tal = tal + 0
else
tal = tal + 1
end if
rs.movenext
loop

if tal = 0 then
fs.deletefile folder & "\" & aspfile.name
end if

rs.close
next
set fs = nothing

set rs = nothing
conn.close
set conn = nothing

response.write "Nu er billederne, der ikke er i brug - slettet !"
%>


Det virker fint nu, men jeg vil lige teste det hele lidt grundigere.
Avatar billede venne Nybegynder
10. april 2003 - 09:49 #1
Du kan lave søgningen i recordsettet noget nemmere:

rs.Filter = "billede = '" & aspfile.name & "'"
if rs.EOF then
  fs.deletefile folder & "\" & aspfile.name
end if


Hvis der er rigtig mange rækker i tabellen kan du få ADO til lave et index på feltet i recordsettet (kræver at det er et client-side recordset):

rs.Fields("billede").Properties("Optimize") = True

/venne
Avatar billede silentbob Nybegynder
10. april 2003 - 10:05 #2
det var lige det, jeg ledte efter, tak
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