Finns det något sätt att automatiskt radera filer som man laddat upp till servern via en php form? Om jag t ex vill att en uppladdad fil ska raderas en vecka efter att den laddades upp.
Är det möjligt att fixa? Hur gör jag då?
Finns det olika tekniker? Vilken är då smidigast om man ska hantera tiden för många filer?
Antingen skapar du ett cronjob som körs med ett visst intervall som anropar ett PHP-script där du kollar vilket datum varje fil har skapats. Om det är mer än X dagar, radera filen.
Eller, om det inte rör sig om så stor mängd filer så kanske det räcker att köra kontrollen i samma script som hanterar uppladdningar. När en fil laddas upp så passar du samtidigt på att kontrollera om det finns filer som är äldre än X dagar, och i så fall raderar dem.
Hur är då ett php-script som raderar gamla filer uppbyggt? Jag är ganska ny med php, har bara gjort en hemsida som använder php och där tog jag rätt mycket hjälp från en kompis som har mer erfarenheter. Jag lär mig sakta men säkert. :)
Först loopar du igenom alla filer i uppladdningsmappen. Detta finns det lite olika sätt att göra på, t.ex. scandir(), glob() eller opendir() + readdir() (exempel finns i manualsidorna för dessa funktioner).
I loopen kontrollerar du när den aktuella filen senast ändrades med funktionen filemtime() (exempel finns i manualen).
Om filens ålder är större än X dagar så raderar du filen med funktionen unlink() (exempel finns i manualen).
Nu behöver du bara ta den här informationen och skriva scriptet ;)
Gör ett försök, misslyckas du så posta din kod här så är vi säkert flera som kan knuffa dig i rätt riktning :)
Du kan även med fördel spara filens timestamp i filnamnet, eller hålla koll på dem via en databastabell. För ett mer stabilt script än att förlita sig på filsystemets tidsstämpel.
244 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2