mboost-dp1

Upload af filer vha. php


Gå til bund
Gravatar #1 - Anders
3. aug. 2008 11:39
Hej

Jeg er ved at lave en side, hvor jeg kan uploade diverse filer. Jeg har fået lavet upload delen, og den virker som den skal bort set fra, at når jeg uploader en fil der begynder med stort Ø, så forsvinder dette Ø i fil-navnet, når filen er blevet gemt på serveren. Hvad er grunden til dette sker? Og hvad er eventuelt løsningen? (Et peg i den rigtige retning er nok :-)

Link til kildekode

Jeg her også planer om at filtere eventuelle "farlige" fil-typer fra (selvom det kun er mig, der skal kunne uploade der). Hvilke fil-typer er "farlige"? Tænker på filer som vil kunne køre uønskede scripts på serveren og ligende.

Alt andet kritik af siden er også meget velkommen.


Link til siden

Mvh Anders
Gravatar #2 - myplacedk
3. aug. 2008 12:05
Min første tanke er tegnsæt. Hvis nu fx. PHP får filnavnet i iso-8859-1 format, men filsystemet er i utf8-format, så er der problemer.

Personligt plejer jeg at gemme filnavn og andet metadata i en database, og blot bruge primær-nøglen (autogenereret numerisk id) som filnavn.
Alternativt kan man bruge noget søg/erstat-agtigt til at fjerne alle "farlige" tegn (non-ascii), og evt. erstatte dem med noget ascii.
Gravatar #3 - Anders
3. aug. 2008 12:48
2 skrev:

Alternativt kan man bruge noget søg/erstat-agtigt til at fjerne alle "farlige" tegn (non-ascii), og evt. erstatte dem med noget ascii.


Det var også min idé, men håbede der var en nemmere eller enklere måde - selvom den vel egentlig er rimelig nem.
Tror jeg prøver den indtil videre, og så må jeg skifte, hvis jeg finder en bedre metode :-)
Gravatar #4 - BurningShadow
3. aug. 2008 13:44
Jeg sad lige og så på de filtype-ikoner du har, og kunne godt tænke mig at vide hvilket ikon-sæt de er fra.
Gravatar #5 - Anders
3. aug. 2008 13:56
4 skrev:
Jeg sad lige og så på de filtype-ikoner du har, og kunne godt tænke mig at vide hvilket ikon-sæt de er fra.

Jeg fandt dem inde på www.freeiconsweb.com/.
Søgte bare på "free icon" på google.
Gravatar #6 - myplacedk
3. aug. 2008 14:07
Kører PHP i Windows?
Gravatar #7 - Anders
3. aug. 2008 14:29
6 skrev:
Kører PHP i Windows?

Umildbart tror jeg det kører på Linux.
http://www.servage.net/page/features/
Linux Operating System
Providing the power and security of Unix.
Gravatar #8 - Jonasee
3. aug. 2008 14:33
#6

ja, du kan installer apache på windows og det er muglit at installer php i IIS
Gravatar #9 - myplacedk
3. aug. 2008 14:37
#8
Jeg mente nu hvad han gør, og ikke hvad der er muligt. ;-)
Gravatar #10 - Windcape
3. aug. 2008 19:55
Tænker på filer som vil kunne køre uønskede scripts på serveren og ligende.

Det afhænger af hvad din server kan eksekvere.

Min kan f.eks. kun køre .php scripts, så jeg ændre meget simpelt, alle .php filer til .phps

Og så er der ingen fare :) Har kørt med public uploadsite i snart 5 år, og alle forsøg på unønskede scripts har fejlet. Jeg har set en del som har forsøgt at uploade dem, men endt som ren text :p
Gravatar #11 - myplacedk
3. aug. 2008 20:23
1 skrev:
Jeg her også planer om at filtere eventuelle "farlige" fil-typer fra (selvom det kun er mig, der skal kunne uploade der). Hvilke fil-typer er "farlige"? Tænker på filer som vil kunne køre uønskede scripts på serveren og ligende.

Oh ja, det kunne jeg jo også lige kommentere. :)

Hvis du bruger min ide med at gemme metadata i en database, og lader brugeren downloade via dit script, så er ingen filer farlige (for din server), da indholdet aldrig vil blive brugt som andet end data.
Gravatar #12 - fidomuh
3. aug. 2008 21:35
#1

Du kan evt laese filnavnen i PHP ( som burde kunne laese begge tegnsaet, og saa konvertere til hvad end dit filsystem koerer ( hoejst sandsynligt UTF-8 ).

Det burde vaere rimeligt simpelt :)
Gravatar #13 - Anders
4. aug. 2008 10:11
12 skrev:
#1

Du kan evt laese filnavnen i PHP ( som burde kunne laese begge tegnsaet, og saa konvertere til hvad end dit filsystem koerer ( hoejst sandsynligt UTF-8 ).

Det burde vaere rimeligt simpelt :)


#12
Vil du uddybe det lidt mere? eventuelt med nogle functions jeg kan slå op på php.net. Det lyder som en løsning.
Gravatar #14 - fidomuh
4. aug. 2008 10:45
#13

Du kan maaske blot bruge utf8_encode :)

Det er nok en god ide at lave et check paa charset, saa du ved om det er utf8 i forvejen, blot for at sikre at der ikke kommer random fejl :)
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login