Upload Fehler copy(datei) [function.copy]: failed to open stream

tinothielhorn

Grünschnabel
hallo liebe coder gemeinde,

ich habe ein problem mit einem upload.

PHP:
error_reporting (E_ALL);
#include("include/dbopen.php");

if(!empty($_FILES['file']['tmp_name']))
	{
	#$titel = htmlentities($_POST["titel"]);
	$filename = $_FILES['file']['name'];
	$tmp_filename = $_FILES['file']['tmp_name'];
	$size = $_FILES['file']['size'];
	$type = $_FILES['file']['type'];
	$datum = time();
	
	if($type != "image/png" && $type != "image/pjpeg" && $type != "image/jpeg" && $type != "image/jpg" && $type != "application/pdf") // datei prüfung ob datei erlaubt ist 
		{
		echo "nur png und jpg oder pdf Dateien duerfen hochgeladen werden.";
		}
		else
		{
		if($size > "1572864") // überprüfen der datei grösse
			{
			echo "Die Datei welche du hochladen willst, ist zu gross!
			Maximale Dateigrosse beträgt 1,5 MB!";
			}
			else
			{
			if(copy($tmp_filename, "files/" . $filename) )
				{
				 #$sql = "INSERT INTO upload ( `titel`, `datei_name`,  `datei_typ`, `datum`) VALUES ('".mysql_real_escape_string($titel)."', '".mysql_real_escape_string($filename)."', '".mysql_real_escape_string($type)."', '$datum')";
				#$ergebnis = mysql_query($sql) OR die("Query: <pre>".$sql."</pre>\n"."Antwoertchen: ".mysql_error());		
				echo "datei erfolgreich hoch geraden";
				}
				else 
				{
				 echo "Kein Upload möglich; Ursache:" . 
							$_FILES['file']['error'];
				}
			}
		}
	}

ansich funktioniert alles wie es soll. erlädt die dateien wie er soll bei funpick hoch und packt ihn in denn dazugehörigen ordner.

nun kommt aber das problem wenn ich diesen code in mein bestehende webseite einbinde wo eigentlich vor dem upload nur noch 2 abfragen geschen um zu prüfen ob man eingelogt ist und ob man die nötigen rechte hat bekomme ich die fehlermeldung
Warning: copy(files/XBox-clone04.jpg) [function.copy]: failed to open stream: Datei oder Verzeichnis nicht gefunden in /usr/export/www/vhosts/funnetwork/hosting/swerzfeind/upload/upload.php on line 39


hier der code noch mal wo ich versuche den code in die seite einzubinden

PHP:
<?php
error_reporting (E_ALL);
#include("include/dbopen.php");
if(!isset($_SESSION["username"]))// prüfen ob eine Session mit dem user name vorhanden ist
   {
	echo"Du bist nicht eingeloggt";
   }
else
   {
	$username = $_SESSION["username"];
	$sql = "SELECT admin FROM user WHERE username LIKE '$username' LIMIT 1";
	$ergebnis = mysql_query($sql) OR die("Query: <pre>".$sql."</pre>\n"."Antwoertchen: ".mysql_error());
	$zeile = mysql_fetch_array($ergebnis);
	
	if($var=$zeile['admin'] == "1") // auswerten der spalte admin ob man rechte besitz
		{
		if(!empty($_FILES['file']['tmp_name']))
			{
			$titel = htmlentities($_POST["titel"]);
			$filename = $_FILES['file']['name'];
			$tmp_filename = $_FILES['file']['tmp_name'];
			$size = $_FILES['file']['size'];
			$type = $_FILES['file']['type'];
			$datum = time();
			
			if($type != "image/png" && $type != "image/pjpeg" && $type != "image/jpeg" && $type != "image/jpg" && $type != "application/pdf")  // datei prüfung ob datei erlaubt ist 
				{
				echo "nur png und jpg oder pdf Dateien duerfen hochgeladen werden.";
				}
				else
				{
				if($size > "1572864") // überprüfen der datei grösse
					{
					echo "Die Datei welche du hochladen willst, ist zu gross!
					Maximale Dateigrosse beträgt 1,5 MB!";
					}
					else
					{
					if(copy($tmp_filename, "files/" . $filename) )
						{
						 #$sql = "INSERT INTO upload ( `titel`, `datei_name`,  `datei_typ`, `datum`) VALUES ('".mysql_real_escape_string($titel)."', '".mysql_real_escape_string($filename)."', '".mysql_real_escape_string($type)."', '$datum')";
						#$ergebnis = mysql_query($sql) OR die("Query: <pre>".$sql."</pre>\n"."Antwoertchen: ".mysql_error());		
						echo "datei erfolgreich hoch geraden";
						}
						else 
						{
						 echo "Kein Upload möglich; Ursache:" . 
									$_FILES['file']['error'];
						}
					}
				}
				#echo $content;
			}
		}
   }
	
?>

hier das dazugehörige formular:

PHP:
<?php
error_reporting (E_ALL);
if(!isset($_SESSION["username"]))
   {
	echo"Du bist nicht eingeloggt";
   }
else
   {
	$username = $_SESSION["username"];
	$sql = "SELECT admin FROM user WHERE username LIKE '$username' LIMIT 1";
	$ergebnis = mysql_query($sql) OR die("Query: <pre>".$sql."</pre>\n"."Antwoertchen: ".mysql_error());
	$zeile = mysql_fetch_array($ergebnis);
	
	if($var=$zeile['admin'] == "1") 
		{
       	?>
        <!-- Die Encoding-Art enctyoe MUSS wie dargestellt angegeben werden -->
        <form method="post" action="index.php?load=upload" enctype="multipart/form-data">
        <table width="600" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="350" align="left">Titel der Notiz:</td>
            <td width="250" align="right"><input name="titel" /></td>
          </tr>
          <tr>
            <td align="left">Bitte eine Datei auswählen;</td>
            <td align="right"><input type=file name="file" /></td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td align="left">&nbsp;</td>
            <td align="right"><input type=submit value=Admin Notiz erstellen!></td>
          </tr>
        </table>
        </form>
        </body>
        </html>
        <?php
		}
	}
?>

aufgerufen wird das ganze über einen caseanweisung!

PHP:
<?php
		if (!isset($_GET['load']))
                  {
                  $load="start";
                  } 
                  else 
                  { 
                  $load = $_GET['load']; 
                  }
		  #echo "<br>load:$load<br>";
		  switch ($load)
		   {
		//--************************ Navigation************************--//
		
		//--****************** Admin Notiz Anfang *****************--//
		
		   case "admin_notiz":				  		include("upload/admin_notiz.php"); break;
		
		   case "formular_upload":					include("upload/formular_upload.php"); break;
		
		   case "upload":							include("upload/upload.php"); break;
                   }

aber wiegesagt wen ich es in die seite einbaue bekomme ich denn
Warning: copy(files/XBox-clone04.jpg) [function.copy]: failed to open stream: Datei oder Verzeichnis nicht gefunden in /usr/export/www/vhosts/funnetwork/hosting/swerzfeind/upload/upload.php on line 39

obwohl ich am eigentliche upload nichts verändere und die datei berechtigungen stehen auch richtig denn hab den upload auch noch mal ohne die 2 neuen abfragen probiert da geht er wunderbar

hat wer eine idee woran dies liegen könnte ?

mfg tinothielhorn
 
Zurück