Gå til innhold

Hindre php i å skrive over filer ved opplasting


Anbefalte innlegg

JEg har et form som laster opp ei fil fra serveren. Det skal brukes til å legge ved et bilde til en nyhet som brukeren legger inn, og alt fungerer vel.

 

Problemet er at hvis det finnes et bilde på serveren med det samme filnavnet fra før, så vil det bildet bli sletta. Hvordan kan jeg hindre dette? Regner med at jeg må sjekke om fila finne, hvis ja endre filnavn, men vet ikke helt hvordan.

 

En annen ting. Alle filer som lastes opp får rettigheten 0700 og tilhører bruker nobody(apache). Er det lurt å bruke chmod/chown på filene for å endre slik at de bli lik med resten av filene, eller funker det greit bare la det være som det er? hva pleier dere å gjøre?

Lenke til kommentar
Videoannonse
Annonse

Slik jeg pleier å gjøre er å lage en MD5-sum av f.eks. brukernavnet som har lastet

det opp, tittel på nyheten etc. og gi filen navn ut fra den MD5-summen. Når du

lister opp nyhetene kan du lage en ny sum, og henter ut bildet med den riktige

MD5-summen.

 

Hvis du skjønner logikken min! :blush:

Lenke til kommentar

skjønte hva du mente, men jeg legger inn filnavnet i en database sammen med artikkelen med samme navn som når fila ble lasta opp. er det ikke kjekt å beholde filnavnet for å vite sånn ca. hvilket bilde det er? hvis jeg får ei /images mappe med 500 filer av typen md5 navn, så vil det kanskje bli litt vanskelig å navigere rundt.....

 

og hva med rettighetene?

Lenke til kommentar

Med mindre du skal skrive og forandre på filene så er det vel nok med 0700 på

filene? Men hva vet vel jeg.

 

Og om filnavnene: du kan titte litt i manualen på filesystem functions, der er det

tonnevis av eksempler på hvordan man sjekker om en fil eksisterer (du kan bruke

is_file() kanskje?), og kombinere dette med en randomsiffergenerator som føyer til

5 siffer på slutten av navnet til hvert bilde?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...