fileupload durch ajax
bugge
- php
0 Der Martin0 Tom
hallo,
ich habe mir hier ein Ajax Script geholt.
Die dazu passende php-Datei zum upload/verschieben der Datei wird auch richtigerweise aufgerufen (mittels alert getestet).
Wie angegeben ist der Inhalt der Datei folgender:
<?php
$uploaddir = '/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
?> <script type= "text/javascript">alert('done');</script> <?php
} else {
// WARNING! DO NOT USE "FALSE" STRING AS A RESPONSE!
// Otherwise onSubmit event will not be fired
?> <script type= "text/javascript">alert('error');</script> <?php
}
?>
Der Ordner Uploads liegt im root und hat alle Rechte. Dennoch kommt ständig alert -> error. Und die Datei kann ich auf meinem Server auch nicht finden..
Weiß jemand, woran das liegt?
Hi,
$uploaddir = '/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
das sieht nicht gut aus ...
Der Ordner Uploads liegt im root und hat alle Rechte.
Kann ich mir nicht vorstellen, wenn du nicht der Server-Admin bist. Als normaler User (Hosting-Kunde) hast du wohl kaum die Berechtigung, auf das Root-Verzeichnis des Server-Filesystems zuzugreifen.
Verwechsle bitte nicht das Root-Verzeichnis aus HTTP-Sicht mit dem Root-Verzeichnis des Filesystems!
So long,
Martin
Hi,
$uploaddir = '/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
das sieht nicht gut aus ...
wie sähe es denn gut aus? ;-)
Der Ordner Uploads liegt im root und hat alle Rechte.
Kann ich mir nicht vorstellen, wenn du nicht der Server-Admin bist. Als normaler User (Hosting-Kunde) hast du wohl kaum die Berechtigung, auf das Root-Verzeichnis des Server-Filesystems zuzugreifen.
Verwechsle bitte nicht das Root-Verzeichnis aus HTTP-Sicht mit dem Root-Verzeichnis des Filesystems!
Also ich bin kein Hostingkunde sondern hab meinen eigenen Server. D.h. ich gehe aus dem root-Verzeichnis zunächst in den Ordner httpdocs, worin dann meine index-Datei liegt.
in httpdocs liegt auch der ordner uploads.
habe $uploaddir auch schon in /httpdocs/uploads/ geändert, geht aber auch nicht.
über google komme ich immer auf das gleiche beispiel, welches du als unschön bezeichnet hast
Hallo
Also ich bin kein Hostingkunde sondern hab meinen eigenen Server. D.h. ich gehe aus dem root-Verzeichnis zunächst in den Ordner httpdocs, worin dann meine index-Datei liegt.
in httpdocs liegt auch der ordner uploads.
habe $uploaddir auch schon in /httpdocs/uploads/ geändert, geht aber auch nicht.
Das ist nach deiner Beschreibung das richtige Verzeichnis. Du musst nun prüfen, als welcher Benutzer/in welcher Gruppe PHP ausgeführt wird und diese(n) Wert(e) mit denen des Verzeichnisses /httpdocs/uploads vergleichen.
Tschö, Auge
So gehts:
$uploaddir = $_SERVER['DOCUMENT_ROOT'].'/uploads/';
Danke für eure Hilfe!
Hello,
hallo,
ich habe mir hier ein Ajax Script geholt.
Die dazu passende php-Datei zum upload/verschieben der Datei wird auch richtigerweise aufgerufen (mittels alert getestet).Wie angegeben ist der Inhalt der Datei folgender:
[code lang=php]<?php
$uploaddir = '/uploads/';
Die obige Zeile wird vermutlich den Fehler enthalten.
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
Das Verschieben des Files in "/uploads/" wird vermutlich nicht möglich sein, weil für PHP in üblicherweise open_basedir gesetzt ist.
http://de2.php.net/manual/en/ini.core.php#ini.open-basedir
Weitere Restriktionen wären auch noch denkbar. (suPHP, suExec, usw.)
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg