Nochmals ich :) , mkdir() Problem
Daniel
- php
Hallo nochmal!
Enthschuldigt, dass ich so lästig bin, aber ich habe hier ein kleines Problem, und zwar:
Ein Benutzer hat die Möglichkeit Bilddateien auf den Server zu laden.Diese werden dann von einem Skript weiterverarbeitet. Die Verarbeitungsroutine wird aber mittels include() eingebunden (file_functions.inc)und per funktionsaufruf ausgeführt.
Naja, also wird daraufhin das hinaufgeladene Bild auf ein Thumbnail ge-"resampled" und mittels imagejpeg(),imagegif()...etc in einem Temporärverzeichnis zwischengespeichert.
Das Problem ist nun:
Der Pfad zum TempVerzeichnis sollte in dem Verzeichnis angelegt werden aus der das Skript aufgerufen wurde.Das Skript sieht dann so aus:
...
...
$path = $_SERVER["DOCUMENT_ROOT"].dirname($PHP_SELF);
clearstatcache(); //Löschen des Caches
if(!is_dir($path."/tmp_img"))
{//Verzeichnis existiert nicht, anlegen des Verzeichnisses
mkdir("tmp_img",0755);
}
$image_save_filename = $path."/tmp_img/".$PHPSESSID."_small";
//erkennen des Bildtyps, um die richtige Grafikspeicherfunktion zu wählen
if($image_info[2] == 2)
{//JPG Bild
$image_save_filename .= ".jpg";
imagejpeg($thumb,$image_save_filename,$quality); //$quality = JPG Grafikqualität
}
elseif($image_info[2] == 3)
{//PNG Bild
$image_save_filename .= ".png";
imagepng($thumb,$image_save_filename);
}
elseif($image_info[2] == 15)
{//WBMP Bild
$image_save_filename .= ".wbmp";
imagewbmp($thumb,$image_save_filename);
}
Diese Fehlermeldungen bekomme ich jetzt:
Warning: mkdir(/home/www/web66/html/verwaltung/site_structure/tmp_img): Permission denied in /home/www/web66/html/verwaltung/includes/file_functions.inc on line 73
Warning: imagejpeg(): Unable to open '/home/www/web66/html/verwaltung/site_structure/tmp_img/21ef19b928c9a04c1d7db402aee8adc7_small.jpg' for writing in /home/www/web66/html/verwaltung/includes/file_functions.inc on line 84
Soll ich das jetzt so verstehen, dass ich keine Schreibrechte habe, um das Verzeichnis zu erstellen? Laut meinen Recherchen muss ich dass für das Verzeichnis Schreibrechte setzen, da das Verzeichnis aber nicht vom Skript erstellt wurde muss ich erst den Eigentümer ändern mittels chown(). Nur welchen Eigentümernamen hat das Script?
Komisch finde ich aber auf jeden Fall, das es in einem anderen Verzeichnis problemlos geht, obwohl es auch nicht vom Skript erstellt
worden ist...woran kann das liegen ?
Grüsse,
Daniel
Kleiner Fehler vorher:
mkdir($path."tmp_img",0755);
sollte das natürlich heissen
Hello,
Soll ich das jetzt so verstehen, dass ich keine Schreibrechte habe,
Nein, das sollst Du so werten, dass Dein Mitarbeiter (Apache/PHP) dort keine Schreibrechte hat. Was DU dort für Rechte hat, interessiert nur den User KeineSau.
Grüße
Tom