Witajcie
Jestem w trakcie pisania projektu na zaliczenie. Moim zadaniem jest stworzenie galerii obrazów z możliwością edycji komentarzy oraz ocenianiem zdjęć. Pracuję na serwerach politechniki warszawskiej i stąd wynikają pewne uniedogodnienia. W kazdym razie wszystkie pliki na serwerze maja CHMOD ustawiony na 777.
Jednak do rzeczy:
Tworzę miniatury przy pomocy biblioteki GD lib korzystając z poniższego kodu
<?php
//Przypisujemy do zmiennej $img_path ścieżke do obrazka
$img_path = $_GET['path'];
//Tworzymy scieżkę do miniaturki
$thumb_path = substr($img_path,0,strrpos($img_path,'.')).'.th.jpg';
//ustalamy maksymalny dopuszczalny rozmiar miniatury
$max_width=$max_height=100;
//Sprawdzamy czy obraz istnieje
if(!file_exists($img_path))die('<p>Plik obrazu nie istnieje</p>');
//Pobieramy informacjie o obrazie
$img_attr = getimagesize($img_path);
//Sprawdzamy czy obraz jest wiekszy na szerokość czy na wysokość
// i zmniejszamy odpowiednio rozmiar
// $img_attr[0] - szerokosc, $img_attr[1] - wysokość
if($img_attr[0]>$img_attr[1]){
$scale = $img_attr[0] / $max_width;
}else{
$scale = $img_attr[1] / $max_height;
}
//Tworzymy obraz miniaturki
$w = floor($img_attr[0]/$scale);
$h = floor($img_attr[1]/$scale);
$thumb = imagecreatetruecolor($w,$h);
//Kopiujemy obraz pomniejszajac go,
imagecopyresampled($thumb, imagecreatefromjpeg($img_path), 0, 0, 0, 0, $w, $h, $img_attr[0], $img_attr[1]);
//Zapisujemy do pliku (jakość 85)
imagejpeg($thumb,$thumb_path,85);
?>
Problem polega na tym, że tak utworzone miniatury nie wyświetlają się. Pliki nie posiadaja żadnych uprawnien dla innych (---), oryginały posiadają uprawnienia (r-x).
Funkcja echo fileperms($file); dała następujace wyniki :
33261 dla plików które się wyświetlają
33188 dla plików które się NIE wyświetlają
Moje pytanie jest takie: jak sprawić, żeby tworzone miniatury zapisywały się od razu z odpowiednimi prawami dla wszystkich?
Poprawka: Wszystkie pliki mają ustawiony CHMOD 755 (r-x)