[PHP] [GD] Utworzone miniatury mają złe prawa dostępu

0

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)

0

Witam,

Wystarczy skorzystać z funkcji bool chmod ( string $filename , int $mode ).
btw. zapis " 755 (r-x)" oznacza rwxr-x-rx, a nie jak napisałeś w nawiasie.

http://php.net/manual/en/function.chmod.php

1 użytkowników online, w tym zalogowanych: 0, gości: 1