so ich habe jetzt das Script bei mir ausprobiert und bei mir geht es.
[code]<?php
$uploaddir = $_SERVER[‘DOCUMENT_ROOT’].“test/”; // kompletter Pfad zu Dateien fuer Dateinamen lesen
//$uploaddir = $_SERVER[‘DOCUMENT_ROOT’]."/**/dev/img/uploads/userpics/’.$id.’/profilpic/"; // kompletter Pfad zu Dateien fuer Dateinamen lesen
$allowedExtensions = array(“php”,“js”,“txt”);
function isAllowedExtension($fileName)
{
global $allowedExtensions, $fileextension;
$fileextension=end(explode(".", $fileName));
return in_array(end(explode(".", strtolower($fileName))), $allowedExtensions);
};
function Ersetze($dateiname)
{
$dateiname=preg_replace( array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/","/ /"),array(“ae”,“oe”,“ue”,“Ae”,“Oe”,“Ue”,
“ss”,"_"), $dateiname);
return $dateiname;
};
function check_datei()
{
global $dateiname, $uploaddir;
$backupstring = “copy_of_”;
$dateiname = $backupstring."$dateiname";
if( file_exists($uploaddir.$dateiname))
{
check_datei();
}
}
$Head = ‘’;
$Foot = ’ ';
$Formular =’
';
if (!empty($_POST))
{
$postNameArr = array(‘SEND’, ‘F4_Submit’);
// Array von ‘$_Post’ Werten für die verschiedenen Formulare bzw. Buttons.
$postIdentifierArr = array();
// Array fuer alle in ‘$_POST’ gefundenen Werte
foreach ($postNameArr as $postName)
{
if (array_key_exists($postName, $_POST))
{
$postIdentifierArr[] = $postName;
}
}
/*
* Nur ein Formular bzw. Button sollte übertragen worden
sein, sodass nur ein Wert in ‘postIdentifierArr’.
* Die ‘DIE’ Aussagen werden zur Warnung bei 0 oder mehr als
einem Formular ausgegeben
*/
if (count($postIdentifierArr) != 1)
{
count($postIdentifierArr) < 1 or die("$_POST enthält mehr
als einen Wert: " . implode(" “, $postIdentifierArr));
die(”$_POST enthält keinen gültigen Wert.\n");
// We have not died yet so we must have less than one.
}
switch ($postIdentifierArr[0])
{
case 'SEND':
{
echo '<a href="'.$_SERVER[PHP_SELF].'">zurück</a><br>';
$dateiname = Ersetze ($_FILES['userfile']['name']);
if( file_exists($uploaddir.$dateiname))
{
check_datei();
//echo "Die Datei mit dem Dateinamen <b>$datei_name</b> existierte bereits.<br> Ihre Datei wurde in <b>$dateiname</b> umbenannt.<br>";
}
if(isAllowedExtension($_FILES['userfile']['name']))
{
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir."$dateiname"))
{
//echo "Upload erfolgreich. Datei ".$uploaddir.$dateiname." hochgeladen <br>";
echo 'Upload erfolgreich (Zeile 113)';
}
else
{
print "Possible file upload attack! Heres some debugging info:n
Datei ".$uploaddir.$dateiname;
print_r($_FILES);
};
};
//CreateThumbnail($dateiname);
break;
}
}
}
else // $_POST is empty.
{
/*
* Erster Aufruf des Scripts was soll angezeigt werden
*/
echo $Head.$Formular.$Foot;
}
?>
[/code]
Noch ein paar Anmerkungen:
[ol]
- Das Uploadverzeichnis muss komplett existieren
- versuch erstmal einen einfachen Pfad, ich habe es mit test/ versucht und der upload klappte, wenn es geht einfach immer weiter den Pfad vom Root Verzeichnis aus erweitern
- woher hast du eigentlich die ‘**’ in deinem Pfad
- ich habe noch eine Extension Überprüfung inzugefuegt also in Zeile 5 die erlaubten Erweiterungen eintragen
[/ol]
Ich hoffe jetzt geht es