• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP Upload spezifisieren

Calm

Mitglied
Hallo liebe Community,

vorab möchte ich nochmal sagen, dass ich relativ neu bin in PHP. Mein Plan ist ganz einfach:

Man soll eine Datei hochladen, die dann unter bestimmen Bedingungen im Order /uploads gespeichert werden soll.

1. Ich möchte nur folgende Datei Typen: .docx, .doc, .xls, .xlsw, .pdf, .jpg, .gif, .bmp, .png, .avi, .wav, .wmv.
Wie bekomme ich das hin?

2. Die Dateien sollen nicht größer sein als 5 MB!!!! Wie mache ich das?

3. Wie benenne ich sie automatisch? (angefagen bei 000001.doc, 000002.pdf, ...)

Danke
 
1. Ich möchte nur folgende Datei Typen: .docx, .doc, .xls, .xlsw, .pdf, .jpg, .gif, .bmp, .png, .avi, .wav, .wmv.
Wie bekomme ich das hin?

Indem Du
a) vor dem Upload per JavaScript prüfst, welche Dateiendung die eingefügte Datei hat.
b) vor dem Upload per accept-Attribut beim input-file-Element die Beschränkung auf bestimmte MIME-Types setzt (musst dir also pro Dateiendung aus deiner Liste mindestens einen MIME-Type ermitteln und dort eintragen). Das unterstützt jedoch nicht jeder Browser, weshalb a) die Alternative wäre. Siehe: HTML/Elements/input/file - W3C Wiki
c) nach dem Upload prüfen, welche Dateiendung Oder/Und MIME-Type die hochgeladene Datei hat.

2. Die Dateien sollen nicht größer sein als 5 MB!!!! Wie mache ich das?

Grundsätzlich kann man nicht auf einfachem Weg verhindern, dass jemand versucht eine 50MB-Datei hochzuladen. Denn erst nach dem Upload weiß der Server wie groß die Datei ist. D.h. Du könntest in dem Moment dann prüfen, wie groß die Datei ist (Stichwort $_FILES -> filesize). Wenn sie zu groß ist gibst Du eine entsprechende Meldung aus. Wenn sie klein genug ist, speicherst Du sie erst tatsächlich in deinem Zielverzeichnis.

3. Wie benenne ich sie automatisch? (angefagen bei 000001.doc, 000002.pdf, ...)

Indem Du den Dateinamen bei move_uploaded_file() entsprechen nennst. Vorher kannst Du ja noch prüfen, was die aktuell höchste Nummer in dem Verzeichnis ist.
 
OK: Jetzt ist fast alles klar. Nur eine Frage:

1. Wie mache ich das mit dem Dateityp in JS?

Danke

PS: Von JavaScript habe ich keine Ahnung
 
Zurück
Oben