Seite 1 von 1
Dateiupload mit PHP
Verfasst: 08.02.2003 17:13
von Advanced-Rookie
Nachdem ich nun das Formular abgeschickt habe, wie greife ich auf die Datei zu und wie wird sie dann auf den Server geladen?
Ich habe damit keine Erfahrungen. Vielleicht etwas ausführlicher.
Wie kann ich denn das Format der Datei bestimmen, geht das nur über die Endung? Die Dateigröße benötige ich auch.
Vielen Dank für eure Hilfe
Rookie
Verfasst: 08.02.2003 17:16
von Spider
Hi uploaden kannste mit folgendem Quellcode: (die Grösse kannste erstmal im Formular bestimmen!)
Code: Alles auswählen
<?php
if($_POST['action']=="upload")
{
$tmp_name = $HTTP_POST_FILES['userfile']['tmp_name']; // Temporäre Datei! Ist irgendwo abgelegt :)
$name = $HTTP_POST_FILES['userfile']['name']; // Der original Name der Datei!
move_uploaded_file($tmp_name, $name); // Die Temporäre Datei wird nun mit dem richtigen Namen auf dem Server erstellt!
}
?>
<html>
<head></head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="action" value="upload">
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
<input name="userfile" type="file">
<input type="submit" value="Datei uploaden">
</form>
</body>
</html>
Mit dem Inputfeld kannste die Grösse (bytes) der Datei bestimmen:
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
Verfasst: 08.02.2003 17:22
von Advanced-Rookie
hmm... was genau bestimme ich da oben in den Variablen?
Was ist der Bestimmungsort?
Was der Ausgangsort?
Kannst du das noch etwas kommentieren
Verfasst: 08.02.2003 17:26
von Spider
Klar, hab ihn editiert!

Verfasst: 08.02.2003 17:30
von Advanced-Rookie
noch eins, wo kann ich bestimmen in welches Verzeichnis auf dem Server die datei hinkommt? Ich verstehs noch nicht ganz
Verfasst: 08.02.2003 17:35
von Spider
Hiermit:
move_uploaded_file($tmp_name, "ordner/".$name);
Verfasst: 08.02.2003 19:52
von Jensemann
Spider hat geschrieben:
Mit dem Inputfeld kannste die Grösse (bytes) der Datei bestimmen:
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
Aber zusätzlich noch mit filesize() prüfen, MAX_FILE_SIZE kann auch ein user mit wenig kenntnissen fälschen.
Ausserdem würde das ablegen unter richtigem namen evtl. andere sicherheits probleme mit sich bringen (überschreiben von dateien). Am besten eine id verwenden oder so die man z.B. der datenbank zuordnet, je nachdem was man machen will.
Verfasst: 09.02.2003 15:32
von Advanced-Rookie
$tmp_name = $HTTP_POST_FILES['userfile']['tmp_name'];
move_uploaded_file($tmp_name, $rootdir."/chat/user_images/".$bild);
ich hab das u.a. als script. $bild ist ein kombinierter name abhängig vom user. (muss da eine Dateiendung mit rein?)
Der upload funktioniert nicht, zumindest habe ich noch keine Datei auf den Server bekommen. Fehlermeldungen gibts keine.
Was ist falsch?