Thomas Schmieder: Daten in einer Datei speichern

Beitrag lesen

Hallo Trinity,

(ist das eigentlich ein deutscher Vorname? *gg*)

das Senden von Dateien über den HTML-Browser geht mit

<form action="empaengerscript.php" name="xyz" method="post" encType="multipart/formdata>
  <input type="file" name="datei1" ID="datei1">
  <input type="submit" name="upload" value="wechdammitt">
</form>

Nun zum schwierigen Teil:

Je nach Server und Konfiguration wird das Verfahren umgesetzt.
Ich kann es Dir nur für eine LAMP-Conf erzählen (Linux-Apache-PHP-MySQL).

Die Datei wird in ein in Apaches httpd.conf voreingestelltes temp-Verzeichnis als echte temporärdatei geladen. Die Größe ist durch eine Variable (uplaod_max_filesize) serverseitig auf 2.000.000 Bytes begrenzt. Wenn das Empfängerscript endet, wird die temp-Datei automatisch gelöscht.

In der Servervariable

$datei1  wird der qualifizierte Pfad+Name der Temp-Datei zurückgegeben.

$datei1_name wird der originalname der Datei auf dem Client für den Server bereitgestellt

$datei1_size wird die tatsächliche Größe der Datei bereitgestellt

$datei1_type wird der MIMI-Type de Datei bereitgestellt.

Wenn man den Namen im Input-Tag ändert, ändern sich auch die
Variablennamen entsprechend.

Man muss dann im Empfängerscript die Datei NACH DER PRÜFUNG auf Viren, Scripte, Hintertüren in das Zielverzeichnis kopieren.

Grundregel: niemals ausführbare Dateien uploaden lassen.

Der WWWRUM muß die entsprechenden Verzeichnisrechte besitzen. Bitte keinesfalls rwx bei Others setzen!!!

Nach dem Kopiervorgang die Gruppe mit chgrp und die Rechte mit chmod sofort auf das kleinste mögliche Übel verstellen. Owner der Datei ist automatisch der wwwrun. Das macht man noch im PHP-Script.

Dann ist der Upload fertig.

Viel Spaß beim Hintertürenbauen. Ich komme dann mal auf der Page vorbei. OK?

Gruß

Tom