PHP Blogger

Startseite Schreib mir ne Mail! RSS Abo Webnews

Wie groß ist Dein Upload?

Diese Frage stelle ich mir immer wieder. Kunden kommen ja auf die absonderlichsten Dinge. Installiert man ein WCMS, ganz gleich welches, muss erst mal ein 200MB Video hochgeladen werden - und da krachts natürlich weil das Upload-Limit geringer eingestellt ist.

Macht es überhaupt Sinn, die maximale Uploadgröße höher zu setzen als den vorkonfigurierten 2 MB? Ja klar. Wie schnell findet sich ein PDF, ein hochauflösendes Pressefotos oder gleich ein Zip-Archiv, das in das WCMS Repository hochgeladen werden soll. Und das ist auch sinnvoll.

Problematisch beim klassischen Upload über ein HTML Formular ist natürlich auch der fehlende Fortschrittsbalken. Als Nutzer weiß man nie so genau “Lebst Du schon oder lädst Du noch?” ;) In den Zeiten von 6M-DSL und/oder synchronen Uploadraten wird die größte Größe immer kleiner. Trotzdem uploaded man bei 100 oder 200MB (jetzt mal ganz extrem, ist aber schon vorgekommen) eine ganze Weile - um als Nutzer nach einer halben/dreiviertel Stunde festzustellen, dass es ein Uploadlimit gibt :)

Den Sicherheits-Gedanken nicht zu vergessen - Wie schnell öffnet man ein riesen Scheunentor für Leutchen, die man besser nicht auf seinem Server hätte.

Aber wie hoch sollte man Upload zulassen? Ich denke, dass ist zum einen abhängig von der Servernutzung, der Kapazität und der Serverumgebung. Ich habe mir überlegt, das insgesamt 3 Szenarien extrem Sinn machen, es gibt natürlich noch mehr Möglichkeiten.

Okay, fangen wir mal mit Szenario 1 an: Die klassische öffentliche Website mit kleinem Downloadarchiv. Hier glaube ich, ist es unwahrscheinlich, das im WCMS mehr als 20 MB hochgeladen werden müssen. Ich denke sogar, das dieses Limit vielleicht schon eine Idee zu hoch angesetzt ist. Was, wenn man mehr als 20 MB hochladen muss? Für diesen Fall empfehle ich auf das klassische FTP zu switchen - aber Vorsicht - FTP ist kein verschlüsseltes Protokoll. Besser ist SFTP/SSH - dafür gibts auch schöne Freeware-Clientsoftware, die sich komfortabel benutzen lässt. Die gewünschte Datei in einen Download-Ordner im Webroot knallen - fertig.

Szenario 2: Das Intranet, das von einer Firma genutzt wird, um den Mitarbeitern Informationen und beispielsweise elektronische Formulare zur Verfügung zu stellen. Denkbar ist auch ein Downloadbereich mit hochauflösenden Fotos für die PM-Abteilung. Hier macht es aus meiner Sicht Sinn, 50 MB für den Upload zuzulassen. Damit sollten auch wirklich hochauflösende Fotos abgedeckt sein.

Szenario 3: Upload-Server, der z.B. von Dienstleistern verwendet wird um Kunden die Möglichkeit zu geben, produzierte elektronische Daten zur Analyse bereitzustellen. Ein praktisches Beispiel: Ein Kunde, der 3D Software erworben hat, hat eine Datei gespeichert mit der er einen Bug reproduzieren kann. Bei einem ordentlichen 3D-File können schon mal zwischen 100 und 150 MB (oder mehr) zusammen kommen. Wenn man einen solchen Service anbietet, sollte man auf keinen Fall größere Dateien als 300 MB annehmen - die am besten auf CD brennen und per Post schicken lassen.

Insgesamt sollte man überlegen, ob für einen Upload-Server nicht vielleicht ein spezieller Client verwendet oder einen anderen Standard wie (S)FTP zurückgegriffen wird.

Fall Du das Vergnügen hast, den Server selbst aufzubauen - Achte immer darauf, das der temporäre Uploadordner von PHP nicht auf der Systempartition liegt. Bei Uploadservern, unbedingt eigene (ausreichend große) Partitionen bereitstellen!

Die Einstellungen in der php.ini für Dateiuploads sind folgende:

  • post_max_size
  • upload_max_filesize

Wie Du sicher weißt, muss auch post_max_size hochgestellt werden - und das bestimmt auch mitunter den RAM, den das PHP Script konsumieren darf. Bei 2 GB RAM ist schnell Schluss, wenn man die Uploadgröße sehr tolerant bei 200 MB einstellt :) Übrigens: Immer daran denken: $_POST-Header werden auch gerne von bösen Spammern verwenden. Einen Server kann man damit schnell ins wanken bringen…

  • MisterWong
  • del.icio.us
  • Technorati
  • Digg
  • Slashdot
  • YahooMyWeb
  • Furl
  • Ma.gnolia
  • Spurl
  • Netscape
  • StumbleUpon
  • MyShare
  • blogmarks

Tobias meint dazu:

28. April 2007 um 14:17

Hi,
um zu vermeiden, da

timi meint dazu:

28. April 2007 um 14:49

Gut zu wissen - werd ich gleich mal ausprobieren

Ingo meint dazu:

4. Mai 2008 um 20:11

Ha, danke für den Tip mit dem “LimitRequestBody” genau sowas suche ich schon lange und kam eigentlich wegen was ganz anderem hier her :-) Habe aber auch das Problem dass der Upload immer ewig dauert und dann kommt erst die Fehlermeldung.

timi meint dazu:

5. Mai 2008 um 13:45

Freut mich, wenns geklappt hat!

RSS für Kommentare zu diesem Artikel · TrackBack URI

Schreib Deine Meinung