Dateiupload mit PHP

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Advanced-Rookie
Mitglied
Beiträge: 124
Registriert: 04.10.2002 15:02
Kontaktdaten:

Dateiupload mit PHP

Beitrag 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
Benutzeravatar
Spider
Mitglied
Beiträge: 108
Registriert: 08.02.2003 16:28
Wohnort: Osnabrück
Kontaktdaten:

Beitrag 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">
Zuletzt geändert von Spider am 08.02.2003 17:25, insgesamt 1-mal geändert.
Advanced-Rookie
Mitglied
Beiträge: 124
Registriert: 04.10.2002 15:02
Kontaktdaten:

Beitrag 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
Advanced-Rookie
Mitglied
Beiträge: 124
Registriert: 04.10.2002 15:02
Kontaktdaten:

Beitrag von Advanced-Rookie »

noch eins, wo kann ich bestimmen in welches Verzeichnis auf dem Server die datei hinkommt? Ich verstehs noch nicht ganz
Benutzeravatar
Spider
Mitglied
Beiträge: 108
Registriert: 08.02.2003 16:28
Wohnort: Osnabrück
Kontaktdaten:

Beitrag von Spider »

Hiermit:
move_uploaded_file($tmp_name, "ordner/".$name);
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag 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.
Advanced-Rookie
Mitglied
Beiträge: 124
Registriert: 04.10.2002 15:02
Kontaktdaten:

Beitrag 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?
Antworten

Zurück zu „Coding & Technik“