Avatar billede nicolailissau Nybegynder
13. august 2011 - 23:48 Der er 14 kommentarer og
1 løsning

Image upload og plads på server

Hej Eksperter.

Jeg er ved at lave en side hvor brugeren kan uploade billeder sammen med en annoncen han/hun skriver. Til at uploade billederne bruger jeg jQuery's ajax og det fungerer alt sammen fint.

Problemet opstår hvis brugeren fortryder oprettelsen af annoncen og efterlader uploadede billeder på webserveren uden tilhørende annonce, hvilket giver en masse uorden og spildplads.

Har I et godt råd til hvordan jeg sikre mig at der kun befinder sig billeder på serveren der tilhører en annonce?

Mvh
Nicolai Lissau.
Avatar billede webweaver Praktikant
14. august 2011 - 00:07 #1
Nu ved jeg ikke, hvordan dit system er bygget op, men i det der trykkes "submit", bliver annoncen og billederne så ikke uploaded/smidt i database samtidig?

Der hvor man sletter en annonce igen, kam du jo bare bruge unlink() funktionen til at slette dertihørende filer også. Du har vel en sti/et id på billedet/billederne i databasen, hvorfor du derfor også kan finde dem igen i en sletfunktion.
Avatar billede Slettet bruger
14. august 2011 - 00:15 #2
Du kunne måske gemme de uploadede billeder i en temp folder, og så flytte dem over i den rigtige folder når brugeren har gennemført oprettelsen. Så kan du manuelt slette de billeder der har ligget længe, eller du kan lave en lille webside som kun du kan tilgå der automatisk fyrer noget kode af og sletter gamle filer fra temp folderen. Hvis du har mulighed for det, så kan du også have et job kørende der automatisk gør det for dig, f.eks. en gang i døgnet.
Avatar billede jakobdo Ekspert
14. august 2011 - 08:41 #3
Du kunne også have et oprydningsscript, som en gang om ugen, dagen, måneden eller lign...
Tjekker om der er billeder som ikke er tilknyttet en annonce og slette dem.
Det kan sættes op i et cronjob.
Avatar billede nicolailissau Nybegynder
14. august 2011 - 13:42 #4
@webweaver: Billederne bliver uploadet ved ajax, så de bliver placeret på serveren før end brugeren submit'er sine data.

@tolamaps: Det var en god idé :) Det tror jeg at jeg vil arbejde lidt videre med.

@jakobdo: Jeg har desværre kun et webhotel at gøre godt med, og så vidt jeg ved tilbyder surftown ikke mulighed for at opsætte et cronjob. Er der andre måder at gøre det på?

Det bliver nok noget med en temp folder og så et oprydningsscript jeg kan loade en gang imellem. Umiddelbart den bedste løsning.

Tak for inputs.
Avatar billede olebole Juniormester
14. august 2011 - 15:37 #5
<ole>

"Billederne bliver uploadet ved ajax, så de bliver placeret på serveren før end brugeren submit'er sine data"

- så sørger du jo bare for at uploade brugerens data sammen med billederne ... med eller uden Ajax, som det passer dig.

/mvh
</bole>
Avatar billede jakobdo Ekspert
14. august 2011 - 19:47 #6
Olebole: Hvis man laver et upload ala facebook, hvor billedet uploades og man kan redigere billede, udsnit osv... Så giver det god mening, at billedet er uploadet inden alle data desværre er på plads.

Men kunne du ikke lave følgende:

Hver gange nogle besøger siden til billede upload, så skyder du et oprydningsscript af?

Den kunne så rydde alle billeder uden tilknytning og som var X dage/timer etc.. gammelt.
Så burde du ikke have meget mere end et par billeder liggende og flyde konstant.
Avatar billede olebole Juniormester
14. august 2011 - 20:01 #7
Jamen, jeg siger skam ikke, at Facebook's eller andres løsning ikke giver god mening.

Jeg påpeger blot, at det giver langt bedre mening at indtaste data og uploade/redigere billede i et og samme hug - evt. i et wizard'ish interface.

Det er vel bare et spørgsmål om valg - og Facebook har ikke nødvendigvis foretaget det bedste  =)
Avatar billede jakobdo Ekspert
14. august 2011 - 20:07 #8
Men redigere billede, det vil jo kræve en upload ole?
Og så længe vi ikke snakker html5, så skal det jo op på serveren, inden vi kan redigere videre.
Og en wizard eller ej, så skal der jo stadig ske noget, hvis brugeren dropper og lukker sin browser i step X.
Avatar billede olebole Juniormester
14. august 2011 - 20:27 #9
Du er zq osse altid så logisk, Jakob!  :D

Sidste knap i wizarden sætter en JS-variabel til true. På window objektets onbeforeunload event spørges på variablen. Er den ikke true, sendes en request til et serverscript, der sletter den ufærdige postering
Avatar billede jakobdo Ekspert
14. august 2011 - 20:33 #10
Og du har altid de rigtige svar olebole.
Hvorfor skrev du ikke bare det fra start? :o)
Avatar billede olebole Juniormester
14. august 2011 - 20:49 #11
Læs, hvad jeg tænker - ikke, hvad jeg skriver!  *D
Avatar billede nicolailissau Nybegynder
02. januar 2012 - 21:03 #12
Vil I ligge et svar jer der ønsker?

Mvh
Avatar billede olebole Juniormester
02. januar 2012 - 21:10 #13
Ellers tak, jeg samler ikke point, så de må gå til andre deltagere  =)
Avatar billede jakobdo Ekspert
03. januar 2012 - 09:32 #14
Svar!
Avatar billede jakobdo Ekspert
12. januar 2013 - 10:47 #15
Takker for point.
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

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