Upload mit PHP

Namd zusammen :)

Ich hatte vor ein Upload-Script zu basteln, aber es funktioniert natürlich nicht :(

Und zwar habe ich mir einige Erklärungen durchgelesen und bin anschliessend an der folgenden Variante hängen geblieben:

<form enctype="multipart/form-data" action="upload.php" method="get">

<input type="file" name="file">
.
.
.
.
.upload.php
.
$path = "/var/www/web10/html/upload/";

if (!copy($file, $path.$file_name))
{
echo "Hier steht dieser Text, falls etwas nicht geklappt hat.";
}

if (!copy($file, $path.$file_name))
{
echo "Hier steht dieser Text, falls etwas nicht geklappt hat.";
} else {
echo "Die Datei $file_name wurde erfolgreich hochgeladen.";
}

Nun, die Datei die der Benutzer auswählt wird weder irgendwo hin hochgeladen noch geht es irgendwie weiter.
Desweiteren bekomme ich immer die Meldung (wenn ich jetzt die boot.ini uppen wollte):

Warning: Unable to open 'C:\\boot.ini' for reading: No such file or directory ......

Warum?
Also ich glaube das dort der gesamte Pfad in $file gespeichert wird...aber das ist auch das einzige...

Kann mir jemand helfen das zum laufen zu bringen?

Danke im voraus,

Brabax
 
<form enctype="multipart/form-data" action="upload.php" method="get">
dort musst du method="post" verwenden !

so einfach mit copy funktioniert das nicht..
zunächst das formular, das versteckte inputfeld gibt die maximalen bytes der zu übertragenden dateien an:

Code:
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<center>
<h1>Datei hochladen</h1>
<table>
<FORM ENCTYPE=\"multipart/form-data\" ACTION=\"upload.php\" METHOD=POST>
<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"10000\">
<tr><td>Datei: </td><td><input type=\"File\" name=\"userfile\" size=\"30\" maxlength=\"255\"></td></tr>
<tr><td>Zielverzeichnis: </td><td><input type=\"Text\" name=\"zielpfad\" size=\"30\" maxlength=\"255\"></td></tr>
<tr><td>Zielname: </td><td><input type=\"Text\" name=\"zielname\" size=\"30\" maxlength=\"^255\"></td></tr>
<tr><td colspan=\"2\" align=\"CENTER\"><INPUT TYPE=\"submit\" VALUE=\"Datei hochladen\"></td></tr>
</FORM>
</table>
</center>
</BODY>
</HTML>

upload.php:
PHP:
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>

<BODY>

<b>$userfile</b>: <? echo $userfile; ?><br>
<b>$userfile_name</b>: <? echo $userfile_name; ?><br>
<b>$userfile_size</b>: <? echo $userfile_size; ?><br>
<b>$userfile_type</b>: <? echo $userfile_type; ?><br>
<b>$zielpfad</b>: <? echo $zielpfad; ?><br>
<b>$zielname</b>: <? echo $zielname; ?><br>
<p>

<?
 /* lösche geg. altes File */
 if(file_exists($zielpfad.\"/\".$zielname)==1) {
?>
Lösche altes File von \"<? echo $zielpfad.\"/\".$zielname; ?>\"<br>
<? if(unlink($zielpfad.\"/\".$zielname)==1): ?>
ok<p>
<? else: ?>
Fehler!!<p>
<? endif; ?>
<?
 }
?>

<p>
Verschiebe File nach \"<? echo $zielpfad.\"/\".$zielname; ?>\"<br>
<? if(rename($userfile,$zielpfad.\"/\".$zielname)==1): ?>
ok<p>
<? else: ?>
Fehler!!<p>
<? endif; ?>

</BODY>
</HTML>

mit der upload.php wird die datei in das entsprechende verzeichnis verschoben, da es auf dem server nur temp. zwischengespeichert wird
 
Erstmal danke für die Antwort :)

Aber er bringt mir immernoch Fehler.... :

Aufruf der upload.php über das vorangegangene Formular. Alles Felder des Formulars habe ich ausgefüllt...

$userfile:
$userfile_name:
$userfile_size:
$userfile_type:
$zielpfad:
$zielname:

Lösche altes File von "/"

Warning: Unable to access / in /var/www/web10/html/upload.php on line 21
Fehler!!


Verschiebe File nach "/"

Warning: Rename failed (No such file or directory) in /var/www/web10/html/upload.php on line 32
Fehler!!

Liegt das jetzt an mir, hab ich was falsch ausgefüllt?
 
hast du als zielverzeichnis den serverpfad angegeben ? dort reicht einfach der relative pfad wie z.b.: pics (das verzeichnis muss natürlich existieren)
 
jup, ich habe haufenweise Varianten durchprobiert, aber er nimmt es mit keiner der probierten Möglichkeiten.

Ich hab nen Ordner "upload" zum test erstellt (777), den hatte ich dann auch eingetragen, einmal nur "upload" dann "var/www/..../upload" .... aber er will nich :(


Edit: Na da grill mir mal einer nen Biber..........aufn localhost funzt es....
 
Zurück
Oben