Hello,
Musste den upload_tmp_dir in der php.ini auf einen Ordner legen, auf dem Schreibrechte für den Benutzer vorhanden sind. Der Standard Ordner (welcher das auch immer ist) hat wohl keine gehabt.
Oh jemineh!
Hast Du Zugriff zur Server- bzw. Virt-Host-Konfiguration?
Das upload\_tmp\_dir
sollte unbedingt AUSSERHALB der Document Root liegen.
Mittels open\_basedir
kann man dem Account darauf Zugriff gewähren (PHP als Modul).
Bei CGI- oder FastCGI-Einrichtung muss dies über das Rechtesystem geschehen.
Wichtig ist aber, das kein anderer Account ('Domain') auf diese Verzeichnisse Zugriff hat.
Der Code
#### falsch ####
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
}
ist so nicht in Ordnung.
Bei einem Single-File-Upload könnte es heißen:
#### besser ####
if ($_FILES["file"]["error"] === 0)
{
echo "<p>Upload: " . htmlspecialchars($_FILES["file"]["name"]) . "</p>";
}
else
{
echo "<p>Error: " . htmlspecialchars($_FILES["file"]["error"]) . "</p>";
}
Das ist darin begründet, dass bei einem Multi-File-Upload ein Array in ["error"] steht.
$_FILES["file"]["error"][$n]
Lies Dir bitte den angefangenen Artikel im Wiki zum File-Upload durch:
http://wiki.selfhtml.org/wiki/Artikel:PHP/File_Upload
Da findest Du noch etliche Fallstricke zum Thema!
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg