Dateirecht nach upload falsch
Sabine
- php
Hallo!
Folgendes Problem ist bei mir aufgetreten: ich lade ein Bild mit PHP in einen Ordner hoch (der Dateiname wird in einer Datenbank gespeichert). Doch ansehen kann ich mir das Bild nicht - und es exisitert wirklich im angegebenen Verzeichnis. Grund: die Rechte stimmen nicht, ich erhalte nach dem Upload nur Lese- und Schreibrechte für den Owner.
Gibt es eine Möglichkeit mit PHP die Rechte für die raufzuladende Datei mitzusetzen? Ich habe leider nix gefunden oder falsch gesucht.
Hier das Skript (sehr einfach, die Variable 'datei' wird von einem Formular übernommen):
move_uploaded_file($_FILES['datei']['tmp_name'], "../xxx/".$_FILES['datei']['name']);
echo "Das Bild wurde erfolgreich nach xxx/".$_FILES['datei']['name']." hochgeladen!";
Mit der Bitte um Hilfe
Sabine
jow,
per HHTP-Upload haben Dateien die Rechte desjenigen Users unter dessem Account der Web-Server läuft.
--roro
Hi!
per HHTP-Upload haben Dateien die Rechte desjenigen Users unter dessem Account der Web-Server läuft.
Das heißt ich muss eine andere Lösung für den Upload finden??? Welche? Sonst kann ich nichts tun?
Sabine
Hello,
per HHTP-Upload haben Dateien die Rechte desjenigen Users unter dessem Account der Web-Server läuft.
Das heißt ich muss eine andere Lösung für den Upload finden??? Welche? Sonst kann ich nichts tun?
Sabine
Das Script wird durchaus in der Lage sein, dem Webserver die Leserechte zu erteilen oder auch Jedermann, wenn es nicht anders geht.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hi Tom!
Das Script wird durchaus in der Lage sein, dem Webserver die Leserechte zu erteilen oder auch Jedermann, wenn es nicht anders geht.
Und wenn du mir jetzt noch verrätst, wie dieses Script aussehen muss, wäre ich überglücklich!
lg
Sabine
Hi Tom!
Das Script wird durchaus in der Lage sein, dem Webserver die Leserechte zu erteilen oder auch Jedermann, wenn es nicht anders geht.
Und wenn du mir jetzt noch verrätst, wie dieses Script aussehen muss, wäre ich überglücklich!
Ja, siehste Tom, hättste da bloß nichts gesagt ;-)
SCNR, --roro
Hello,
Und wenn du mir jetzt noch verrätst, wie dieses Script aussehen muss, wäre ich überglücklich!
Welche Datei(system)operationen hast Du denn schon ausprobiert?
chmod()
chgrp()
umask()
?
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hi!
Welche Datei(system)operationen hast Du denn schon ausprobiert?
chmod()
chgrp()
umask()
?
Tja, um ehrlich zu sein gar keine, weil ich nicht wusste, dass ich die anwenden kann. Entweder ich bin zu blöd zum Suchen im WWW oder ich suche falsch.
Kann ich mit PHP einfach so ein chmod durchführen? Es würde auch schon ein Link zu einer entsprechenden Erklärung reichen.
Vielen Dank
Sabine
Hello,
Welche Datei(system)operationen hast Du denn schon ausprobiert?
chmod() http://www.php.net/manual/en/function.chmod.php
chgrp() http://www.php.net/manual/en/function.chgrp.php
umask() http://www.php.net/manual/en/function.umask.php
?
Tja, um ehrlich zu sein gar keine, weil ich nicht wusste, dass ich die anwenden kann.
Dann schau Dir die Dateifunktionen und die Directoryfunktionen von PHP bitte an
http://www.php.net/manual/en/ref.filesystem.php
http://www.php.net/manual/en/ref.dir.php
Entweder ich bin zu blöd zum Suchen im WWW oder ich suche falsch.
Wo hast Du denn bisher gesucht?
Kann ich mit PHP einfach so ein chmod durchführen?
Im Prinzip ja, in der Praxis solltest Du sehr genau überlagen, welche Rchte Du wem gibst.
Es würde auch schon ein Link zu einer entsprechenden Erklärung reichen.
Bitteschön, Dein Wunsch sei mir Befehl.
Aber bitte nun auch lesen.
Jeder, der sich mit Upload-Scripten beschäftigt, sollte ich außerdem mit
beschäftigen.
Du musst unbedingt verhindern, dass Dir Files untergeschoben werden, die Du nicht haben willst, oder welche an eine Position kopiert werden, an der Du sie nicht haben willst.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo Tom!
Herzlichen Dank, beginne sofort mit dem Lesen.
Den Upload kann man zwar nur durchführen, wenn man vorher in ein Passwortgeschütztes Verzeichnis kommt, aber ich werde mich natürlich über die Sicherheitsrisiken informieren - wenn du mich schon so nett darauf hinweist!
Liebe Grüße
Sabine
Hello,
per HHTP-Upload haben Dateien die Rechte desjenigen Users unter dessem Account der Web-Server läuft.
Nö, dieselben, unter dem der PHP-Prozess läuft.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo,
ich mach das immer so:
$Pfade_in_DB = array();
foreach ($_FILES as $Artikelbild => $File)
{
if ($File['error'] == 0)
{
$TempName = pathinfo($File['tmp_name']);
$RealName = pathinfo($File['name']);
$FileName = $TempName['basename'].'.'.$RealName['extension'];
$Pfade_in_DB[$Artikelbild] = '/dozenten/'.$FileName;
move_uploaded_file(
$File['tmp_name'],
$_SERVER['DOCUMENT_ROOT'] . '/' .$Pfade_in_DB[$Artikelbild]
);
chmod($_SERVER['DOCUMENT_ROOT'] . '/' .$Pfade_in_DB[$Artikelbild] , 0777);
}
}
Gruß,
Maus