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>
Kommentar