Uploadscript

Ich habe ein Problem.

Ich versuche ein Upload ein zu bauen. ( Der Code hat schon auf einer Unterseite Funktioniert.)

der Pfad:

$uverzeichniss = ../verzeichnis/unterverzeichnis/dateien;
$datums = 01.01.2010; //das ist nur ein Beispiel
$pfaddd = $uverzeichniss . "/" . $datums . "/" ;

und hier das script:

  if (!copy ( $_FILES['file']['tmp_name'], $pfaddd . $_FILES['file']['name']  ))                          
{
echo "<br />Fehler bei dem Upload!<br />";
}else{
echo "<br />Erfolgreich<br />";
}

wenn ich anstatt

$_FILES['file']['name']

das hier

$_POST["file"]

eingebe, bekomme ich den selben Effekt:

Er lädt nichts hoch. (Ich hab das noch mal überprüft der Name vom Feld ‘type=“file”’ ist wirklich “file” da kann der Fehler (leider) nicht dran liegen).

Wo liegt hier der Fehler?

Kompletter Code (Auszug aus 8 Seiten):

<?php
...
$mkdir2 = $uverzeichniss . "/" . $datums ."/";
@mkdir($mkdir2, 0777);
//******************DATEI UPLOAD******** *******************************
$pfaddd = $uverzeichniss . "/" . $datums . "/" ;
echo $pfaddd;
copy("./uploadvorlagen/index.php","$uverzeichniss/$datums/index.php");
copy("./uploadvorlagen/index.php","$uverzeichniss/index.php");
  if (!copy ( $_FILES['file']['tmp_name'], $pfaddd . $_FILES['file']['name']  ))                          
{
echo "<br />Fehler bei dem Upload!<br />";
}else{
...
}
?>
<form action="#" method="post" name="upload">
...
<input accept="gif/jpg/jpeg/png/pdf/txt/word/xls" value="<?php echo $_POST["file"] ?>" type="file" accept="image/*" name="file" size="30">
<p>
input name="uploada" type="submit" value="Hochladen" /></p>

Hoffe mir kann jemand helfen.
PS: Was seien kann, ist das der Pfad “…/unterverzeichnis/blablabla/” nicht an nimmt. (der Pfad existiert).

Du hast den enctype im Formular vergessen anzugeben.

Und statt copy solltest du das extra dafür gedachte move_uploaded_file benutzen.

ok danke für den Tipp.

ich habe den Tipp befolgt.

$pfaddd = $uverzeichniss . "/" . $datums . "/" ;
echo $pfaddd;
$file = $_POST["file"];
copy("./uploadvorlagen/index.php","$uverzeichniss/$datums/index.php");
copy("./uploadvorlagen/index.php","$uverzeichniss/index.php");
  if (!move_uploaded_file( $_FILES['file']['tmp_name'], $pfaddd . $file ))                          
{
echo "<br />Fehler bei dem Upload!<br />";
}

<form action="#" enctype="multipart/form-data" method="post" name="upload">
<input accept="gif/jpg/jpeg/png/pdf/txt/word/xls" value="<?php echo $_POST["file"] ?>" type="file" accept="image/*" name="file" size="30"></p>
	<p>
		<input name="uploada" type="submit" value="Hochladen" /></p>
	<p>
		&nbsp;</p>
	<p>
		&nbsp;</p>
</form>

jetzt zeigt er mir aber an, das in dem Feld “file” angeblich nichts steht.
Ist noch irgend wo ein fehler den ich nicht sehe?

Danke für deine antwort chrisb

Fileuploads landen nicht in $_POST, sondern in $_FILES.

Warum liest du nicht mal nach, wie sowas geht? Das Handbuch hat doch extra ein eigenes Kapitel darüber:
php.net/manual/en/features.f … method.php

Danke genau das war das Problem.

in php.net habe ich nicht nach gelesen, bzw. gesucht, da ich dachte, das dort so was nicht steht. (ab jetzt immer erst dort suchen :wink: )

Danke dir chrisb