move file --> permission denied --- und wieso???
Thomas Wegner
- php
Hallo mal wieder,
folgende Situation:
Windows 2000
Apache irgendwas (gerade heruntergeladen)
PHP 4.2
versuche nun mit folgendem Script:
if (is_uploaded_file($_FILES["fileupload"]["tmp_name"]))
{
move_uploaded_file($_FILES["fileupload" ["tmp_name"], "C:\temp\");
}
die aus einem formular stammende Datei auf dem Server zu verschieben. Die Fehlermeldung die ich bekomme lautet:
Warning: Unable to create 'C:\temp': Permission denied in C:\php\files\uploaded.php on line 18
Line 18 ist die move_... Zeile!
Auf dem Verzeichnis C:\temp\ hat mittlerweile jeder vollzugriff. Der Apache service arbeitet mit dem System-Account.
Kann mir jemand weiterhelfen? bittebittebitte... bin verzweifelt!
Danke im voraus!
-ich
Hallo,
versuche nun mit folgendem Script:
if (is_uploaded_file($_FILES["fileupload"]["tmp_name"]))
{
move_uploaded_file($_FILES["fileupload" ["tmp_name"], "C:\temp\");
}
.. steht da wirklich C:\temp\ (mit 2 Backslashes am Ende) in deinem Script?
Viele Grüße,
Horst
Hallo,
versuche nun mit folgendem Script:
if (is_uploaded_file($_FILES["fileupload"]["tmp_name"]))
{
move_uploaded_file($_FILES["fileupload" ["tmp_name"], "C:\temp\");
}
.. steht da wirklich C:\temp\ (mit 2 Backslashes am Ende) in deinem Script?
Viele Grüße,
Horst
Habe es schon mit einem und 2 backslashs ausprobiert! Ebenfalls versuchte ich es mit einer URL ("/seite/verzeichnis/"). Hat auch nicht funktioniert.
Moin,
move_uploaded_file($_FILES["fileupload" ["tmp_name"], "C:\temp\");
Wenn du schon Backslashes benutzt, solltest du sie in jedem Fall maskieren, also mit einem Backslash schützen. Das hier dürfte nicht funktionieren, da \t für ein Tabulatorzeichen steht, siehe http://www.php.net/manual/de/language.types.string.php#AEN3735.
Und weiterhin: Die Doku (http://www.php.net/manual/de/function.move-uploaded-file.php) sagt "wird sie zum in destination bezeichneten Dateinamen verschoben", das Schlüsselwort ist hier Dateiname. Die Zeile würde (wenn der fehlende \ eingefügt ist) versuchen eine Datei C:\temp anzulegen und die hochgeladene Datei dorthin zu schreiben, was logischerweise nicht geht, weil C:\temp schon existiert. (Die fehlende ] pack' ich mal in die Kategorie Abtippfehler.)
move_uploaded_file($_FILES["fileupload"] ["tmp_name"], "C:\temp\einhuebscherdateiname");
dürfte also gehen, pass aber auf, dass sich die Skripte nicht gegenseitig stören, falls es mehrmals gleichzeitig oder nacheinander aufgerufen wird.
--
Henryk Plötz
Grüße von der Ostsee
Moin,
move_uploaded_file($_FILES["fileupload" ["tmp_name"], "C:\temp\");
Wenn du schon Backslashes benutzt, solltest du sie in jedem Fall maskieren, also mit einem Backslash schützen. Das hier dürfte nicht funktionieren, da \t für ein Tabulatorzeichen steht, siehe http://www.php.net/manual/de/language.types.string.php#AEN3735.
Und weiterhin: Die Doku (http://www.php.net/manual/de/function.move-uploaded-file.php) sagt "wird sie zum in destination bezeichneten Dateinamen verschoben", das Schlüsselwort ist hier Dateiname. Die Zeile würde (wenn der fehlende \ eingefügt ist) versuchen eine Datei C:\temp anzulegen und die hochgeladene Datei dorthin zu schreiben, was logischerweise nicht geht, weil C:\temp schon existiert. (Die fehlende ] pack' ich mal in die Kategorie Abtippfehler.)
move_uploaded_file($_FILES["fileupload"] ["tmp_name"], "C:\temp\einhuebscherdateiname");
dürfte also gehen, pass aber auf, dass sich die Skripte nicht gegenseitig stören, falls es mehrmals gleichzeitig oder nacheinander aufgerufen wird.
--
Henryk Plötz
Grüße von der Ostsee
Oh man oh man oh man..... es funktioniert!!!!!!!!
Ich bedanke mich vielmals!
Thomas