Hi ...
ich habe ein Upload/Download-Script in php wo man Dateien hoch- und runterladen kann. Das funktioniert auch gut aber leider kommt immer beim Aufruf des Scripts eine Fehlermeldung:
Warning: stat failed for (errno=2 - No such file or directory) in /home/bartrdbm/www.bartron.de/exchange.php on line 19
Das Script kann man hier finden: http://www.bartron.de/exchange.php
Leider funktioniert auch das löschen und umbenennen nicht aber das könnte ich verschmerzen
Ich poste auch mal den Code der exchange.php:
	
Für jede Hilfe wäre ich dankbar, da php noch etwas Neuland ist für mich.
							
						
					ich habe ein Upload/Download-Script in php wo man Dateien hoch- und runterladen kann. Das funktioniert auch gut aber leider kommt immer beim Aufruf des Scripts eine Fehlermeldung:
Warning: stat failed for (errno=2 - No such file or directory) in /home/bartrdbm/www.bartron.de/exchange.php on line 19
Das Script kann man hier finden: http://www.bartron.de/exchange.php
Leider funktioniert auch das löschen und umbenennen nicht aber das könnte ich verschmerzen

Ich poste auch mal den Code der exchange.php:
PHP-Code:
	
	
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<link href="layout.css" rel="stylesheet" type="text/css">
</head><noscript><body></body></noscript>
<body background=images/bg.jpg topMargin=10>
<?php
$upfile_name = strtolower($upfile_name);
$filepath = $DOCUMENT_ROOT."/replays/"; //Hier setzst du DEIN verzeichnis hin!!!
$desc[$upfile_name] = $beschreibung;
include("description.php"); 
 function php_format($string)
 {
  $string = str_replace("\"","\\\"",$string);
  $string = str_replace(chr(13),"",$string);
  return $string;
 }
if (filesize($upfile)>$MAX_FILE_SIZE)
{
echo "Dateilimite überschritten! Transaktion abgebrochen!<BR><BR>";
echo "Sie können durch Packen einer Datei, wenn diese das Limit von 2MB überschreitet, die grösse Verringern und halt per ZIP Archiv hochladen!<BR><HR>";
echo "<a href=\"exchange.php\">Zurück...</A>";
exit;
}
else
{
//Überprüfgen ob Dateiname leerzeichen enthält....
if (strchr($upfile_name,' '))
{
 echo "<b>Achtung!</b><hr>";
echo "Die Datei darf <b>keine</b> Leerzeichen enthalten!!<br><br>";
echo "Anstatt leerzeichen zu verwenden, kann man die <b>_</b> nutzen!<br>";
echo "Enthält die Datei leerzeichen, klappt es mit der Beschreibung nicht, Danke!<br><br>";
echo "<a href=\"exchange.php\">Zurück...</a>";
exit;
}
else
{
 // der Dateiname enthält keine Leerzeichen
//Überprüfgen ob Dateinamen eingebeen oder Beschreibeung korrekt....
if ($upfile_name != "") {
 if(($beschreibung == "") || ($beschreibung == "Hier gibt bitte die Beschreibung und evtl. das MatchUp ein."))
 {
 echo "<b>Achtung!</b><hr>";
 echo "Sie müssen mindestens eine Beschreibung der Datei angeben!<br>";
 echo "Ansonsten wird die Datei unwiederruflich gelöscht! Danke!<br><br>";
 echo "<a href=\"exchange.php\">Zurück...</a>";
 exit;
 }
 else
 {
 //Überprüfung ob datei wirklich vorhanden oder nur ein beschiss ;) ....
if(filesize($upfile)==0)
{
echo "<B><font color=red>Verarbeitungsfehler!</font></b><hr><br>";
echo "Es ist ein Fehler aufgetreten! Entweder existiert die gewählte Datei nicht, ist nicht grösser als 0 Byte oder<br>";
echo "es besteht ein allgemeiner, interner Fehler! Klicken Sie auf zurück und versuchen Sie es nochmal.<br><br>";
echo "Sollte dieser Fehler mehrmals vorkommen, kontaktieren Sie bitte den Webmaster (informatik_support@bluewin.ch)<br><HR>";
echo "<a href=\"exchange.php\">Zurück...</a>";
exit;
}
else
{
/*LOGGEN*/
$datumlog = date("d.m.Y");
$uhrzeitlog = date("H:i:s");
$iplog = getenv("REMOTE_ADDR");
$host = gethostbyaddr($iplog);
$dateihandle = fopen("elog.txt", "a");
$daten = "Datum:".$datumlog."\nUhrzeit:".$uhrzeitlog."\nIP-Adresse:".$iplog."\nHostname:".$host."\nHochgeladene Datei:".$upfile_name."\n===========================\n";
fwrite($dateihandle, $daten);
fclose($dateihandle);
/*LOGGENENDE*/
//Alles in kleinbuchstaben umwandeln....
$des_file= strtolower($filepath.$_FILES['upfile']['name']);
  if (!file_exists($des_file)) {
//Ab hier folgen die ERLAUBTEN dateien! Du kannst dies beliebig ändern....
    if(ereg("(\.jpg)|(\.jpeg)|(\.gif)|(\.png)|(\.3ds)|(\.obj)|(\.txt)|(\.doc)|(\.asc)|(\.mdw)|(\.mdb)|(\.wav)|(\.w3g)|(.\midi)|(\.wma)|(\.exe)|(\.ace)|(\.tar)|(\.rar)|(\.ar)|(\.zip)|(\.cpp)|(\.c)|(\.vbs)|(\.js)|(\.tga)|(\.dat)|(\.dot)|(\.rtf)$", $des_file)) {
        
    if (move_uploaded_file($upfile, $des_file)) {
    //Hier wird die Beschreibung in eine Datei geschrieben....
    @$file = fopen("description.php","w");
 fputs($file,"<?".chr(13)."\n");
 foreach($desc as $filename => $description) {
  @fputs($file," \$desc['$filename'] = \"".php_format($description)."\";".chr(13)."\n");
 }
 @fputs($file,"?>");
 @fclose($file);
    echo "<font color=green>Datei gespeichert</font>";
  } else {
    echo "<font color=red><B>Upload fehlgeschlagen!</font></B><BR>";
    echo "Dies kann folgende Gründe haben:";
    echo "<hr>";
    echo "1. Dateifehler<br>";
    echo "2. Dateilimite zu gross<br>";
    echo "3. Skriptfehler<br>";
    echo "4. Unerlaubte Zeichen im Dateinamen<br>";
    echo "<hr>";
    echo "<a href=\"exchange.php\">Zurück...</a>";
    exit;
  }
 } else {
   echo "<b><font color=\"red\">Diese Art von Datei ist nicht erlaubt!! Transaktion abgebrochen!</font></b><hr>";
echo "<br><b>[Erlaubte Dateitypen]</b><hr>";
echo ".jpg, ";
echo ".jpeg, ";
echo ".gif, ";
echo ".png, ";
echo ".3ds, ";
echo ".obj, ";
echo ".txt, ";
echo ".doc, ";
echo ".asc, ";
echo ".mdw, ";
echo ".mdb, ";
echo ".w3g, ";
echo ".mid, ";
echo ".midi, ";
echo ".wma, ";
echo ".ar, ";
echo ".rar, ";
echo ".tar, ";
echo ".zip, ";
echo ".exe, ";
echo ".ace, ";
echo ".c, ";
echo ".cpp, ";
echo ".js, ";
echo ".vbs, ";
echo ".tga, ";
echo ".rtf, ";
echo ".dot, ";
echo ".dat ";
echo "<hr>";
echo "Der Webmaster übernimmt auf alle fällige Fehler, Systemabstürze, Viren oder sonstige Schäden,<br>die durch Programme der DataExchange enstehen könnten, <b>keine Haftung!</B>";
echo "<hr>";
echo"<a href=\"exchange.php\">Zurück...</a>";
    exit;
 }
}
}
}
}
}
}
echo "<hr>";
unset($files);
if ($dh = opendir($filepath))
{
  while($file = readdir($dh))
  {
    if (!ereg("^\.+$",$file))
    {
     $files[] = $file;
    }
  }
  closedir($dh);
}
$webpath = "replays/"; //ändern auf DEIN verzeichnis!!!
if (is_array($files)) {
 echo "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"100%\">\r\n";
 echo "<tr bgcolor=\"#000000\">";
 echo "<th>Datei</th>";
 echo "<th>Beschreibung</th>";
 echo "<th>Grösse</th>";
 echo "<th>Datum</th>";
 echo "<th colspan=\"2\">Aktionen</th></tr>\r\n";
 sort($files);
 natcasesort($files);
 reset($files);
 foreach($files as $idx=>$file) {
   if ($idx % 2) {
      echo "<tr bgcolor=\"#484848\">";
   } else {
      echo "<tr bgcolor=\"#666666\">";
   }
   printf ("<td><a href=\"%s%s\" target=\"_blank\">%s</a></td>",
   $webpath, $file, $file);
   printf ("<td align=\"center\">%s</td>",$desc[$file]);
   printf ("<td align=\"right\">%s Bytes</td>",
   number_format(filesize($filepath.$file), 0, ",", "."));
   printf ("<td align=\"center\">%s</td>",
   date("d.m.Y H:i:s", filemtime($filepath.$file)));
   printf ("<td><a href=\"%s?file=%s\">Löschen</a></td>",
   "delete.php", $file);
   printf ("<td><a href=\"%s?file=%s\">Umbenennen</a></td>",
   "rename.php", $file);
   echo "</tr>";
    }
 echo "</table>";
}
echo "<hr>";
$datum = date("d.m.Y");
$uhrzeit = date("H:i:s");
$ip = getenv("REMOTE_ADDR");
echo ("<font color=\"#ffcc00\">Ihre IP-Adresse ist: $ip</font>");
echo ("<br>Heute ist der $datum");
echo (", $uhrzeit Uhr<BR>");
echo ("<a href=\"elog.txt\" target=\"_new\">Zugriffe</a> werden geloggt!!<br>");
?>
<!--Dieses kleine Stück HTML kannst du ändern wie du willst...-->
<TABLE width=100%>
<TR>
<TD><a href="exchange.html" target="_new">Anleitung / Dateiliste</A>
</TD></TR>
</TABLE>
<br>
<?php
function dirsize($dir) {
 $dh = opendir($dir);
 $size = 0;
 while (($file = readdir($dh)) !== false) {
  if ($file != "." and $file != "..") {
   $path = $dir."/".$file;
   if (is_dir($path))
    $size += dirsize($path);
   elseif (is_file($path))
    $size += filesize($path);
  }
 }
 closedir($dh);
 return $size;
}
function format_size($rawSize)
{
 return round($rawSize/1048576, 2); //hier die Limite! 1048576 steht für 2MB!!! 
}
$mb_free = 40 - format_size(dirsize('./replays')); //Ändern in DEIN verzeichnis!!! 40 steht für die gesamtlimite des Ordners...kannste ändern...
if($mb_free > 0) // wenn mehr als 40 MB frei sind
{
echo "<table width=100% border=0 cellpadding=0 cellspacing=0>";
echo "<form action=\"exchange.php\" method=\"POST\" enctype=\"multipart/form-data\">";
echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"2097152\">";
echo "<tr><td><input type=\"file\" name=\"upfile\"></td></tr>";
echo "<tr><td><textarea rows=3 colls=5 name=\"beschreibung\" style=\"width:290px\">Hier gibt bitte die Beschreibung und evtl. das MatchUp ein.</textarea></td></tr>";
echo "<tr><td><input type=\"reset\" value=\"Zurücksetzen\" style=\"width:142px\"> <input type=\"submit\" name=\"Hochladen\" style=\"width:142px\"></td></tr>";
echo "</form>";
echo "</table>";
echo "<br>";
echo "Es stehen noch ".$mb_free." MB zur Verfügung.";
}
else // es sind weniger als 40 MB frei
{
echo "Es steht kein Platz mehr zur Verfügung oder die DataExchange ist überlastet!<BR>Versuchen Sie es später noch einmal...";
exit;
}
?>
<br><br><center>© Copyright by <a href=mailto:informatik_support@bluewin.ch>Dominic Kurz</A> and <a href=mailto:tobiasstrauss@web.de>Tobias Strauß</A>
</center>
</body>
</html>
 
          
 Script geht aber Fehlermeldung stört
									
									
									Script geht aber Fehlermeldung stört
								



 Ich dachte, es gäbe eine schnelle und schmerzlose Lösung.
 Ich dachte, es gäbe eine schnelle und schmerzlose Lösung. 
 
Kommentar