[erledigt]avatar - upload script

Bizz

Well-known member
ID: 290125
L
6 August 2007
135
7
so hallo...

Ich hab eine neue Frage..
es geht sich um folgendes:
Ich würde den Usern meines Forum gerne die Möglichkeit bieten ihr Avatar direkt auf der Page hochzuladen...

hab mir da mal was ganz einfach zusammen gesezt, und wollte mal fragen wie man das zum funktionieren bringen kann, bzw ob es überhaupt logisch ist und funktionieren kann...(ich kenn mich mit diesem *file* garnicht aus!)
wie gesagt ich bin bastler und kein Student...

Kurzform:

PHP:
if($upload){
move_uploaded_file($_FILES['userfile']['tmp_name'], 'forum/avatar/'. $_FILES['userfile']['name']); 

    echo "Avatar erfolgreich hochgeladen";
}

HTML:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post"> 
<input name="userfile" type="file"><br> 
<input name="upload" type="submit" value="Upload"> 
</form>

wenn das komplett bescheuert ist bitte sofort sagen...

Danke schonmal allen die mithelfen...
Bizz
 
Zuletzt bearbeitet:
1)
PHP:
if($upload){
ersetzen durch
PHP:
if($_POST['upload']){

2)
PHP:
move_uploaded_file($_FILES['userfile']['tmp_name'], 'forum/avatar/'.$_FILES['userfile']['name']);
ersetzen durch
PHP:
if(move_uploaded_file($_FILES['userfile']['tmp_name'], 'forum/avatar/'. $_FILES['userfile']['name']) == true)
{#weitere Aktionen, wie Eintrag in DB usw.
 echo "Avatar erfolgreich hochgeladen"; 
}

kleine Erlaeuterung:
1) deine Methode geht zwar oft, da viele die register_globals an haben, aber wenn jemand diese Seite per Get-Paramter aufruft, beispielsweise www.abc.de/upload_ava.php?upload=hehe , wuerde das Script versuchen eine Datei die nicht hochgeladen wurde, abzuspeichern.
also lieber ausschliesslich nach dem POST-Paramter fragen

2) du kannst dir auf de.php.net zu allen Funktionen die PHP bietet Informationen aneignen. move_uploaded_file() liefert bei Misserfolg false, bei Erfolg natuerlich true zurueck, und das sollte man nutzen, denn falls es einen Fehler beim Abspeichern gab, wuerde deine Version trotzdem eine Erfolgsmeldung produzieren...:roll:
optional kannst du natuerlich ein "@" vor den Funktionsaufruf setzen, um ggf. alle Fehlermeldungen zu unterdruecken, die auftreten koennen, und dann einen Else-Block hinzufuegen, der dem Benutzer mitteilt dass seine Datei nicht gespeichert werden konnte. (und dir als Admin evtl eine Email ueber defekte Avatar-Hochladung schickt oder aehnliches)

ich hoffe ich konnte helfen

liebe Gruesse

[NACHTRAG] ausfueherliche Hintergrundinformationen findet man wieder auf php.net
 
Zuletzt bearbeitet:
danke!

jop hast mir weiter geholfen

ps: die page ist genau das richtige für mich xD

thread erledigt
Bizz