Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Brak GD2 i ImageMagick na serwerze :(
Forum PHP.pl > Forum > PHP
xPatryk
Witam,

mam dosyć dziwny problem.
Otóż na jednym serwerze nie mam gd2 ani żadnej innej biblioteki do obsługi obrazków i nie mogę go na niego wgrać (nie mam uprawnień).

z kolei mam ją na innym serwerze, do którego mam pełne uprawnienia... chodzi mi o to, czy można jakoś zdalnie dołączyć tą bibliotekę ?

Pozdrawiam
Patryk
Marusz
Nie mozna. Mozesz natomiast uzyc procedur odpowiedzialnych za przetwarzanie grafiki (formularze, etc) zdalnie... Ale czy to bedzie dobrze/szybko chodzilo? Trzeba przetestowac.
xPatryk
Witam...

a czy istnieje jakiś alternatywny sposób generowania obrazków lub jakaś biblioteka, którą można dołączyć już z poziomu skryptu ?


Próbowałem też podejścia alternatywnego:

na serwerze, gdzie znajduje się strona umieściłem plik pobierz.php:

  1. <?php
  2.  
  3.  
  4. if (@fclose(@fopen(&#092;"$source_file\", \"r\"))) {
  5. $source_file = &#092;"http://www.serwer_z_biblioteka.pl/includes/generuj.php?adres=$source_file&rozmiar=$rozmiar&obrot=1\";
  6.  
  7. $destination_file = &#092;"$folder\".$grafika.\"\";
  8. readfile($source_file);
  9. $filecontents = ob_get_contents();
  10.  
  11.  if($fp = fopen($destination_file,'w+')) {
  12.  fwrite($fp,$filecontents);
  13.  fclose($fp);
  14. }
  15. chmod(&#092;"$folder\".$grafika, 0755 );
  16.  
  17.  }
  18. else 
  19.  echo &#092;"<b><center> Wskazany plik nie istnieje.</center></b>\";
  20. ?>


a na drugim, na ktorym mam biblioteke skrypt generuj.php

  1. <?php 
  2.  
  3. $photo=$_GET['adres'];
  4. $rotate=$_GET['obrot'];
  5. $size=$_GET['rozmiar'];
  6. // generowanie miniatur 
  7. // ------------------------- 
  8.  
  9. $photosize=getimagesize($photo); 
  10. if($photosize[2]==1)$photofile=imagecreatefromgif($photo); 
  11. if($photosize[2]==2)$photofile=imagecreatefromjpeg($photo); 
  12. if($photosize[2]==3)$photofile=imagecreatefrompng($photo); 
  13. if($rotate==1){ 
  14. $photoX=round($size/$photosize[0],10); 
  15. $newimagesize[0]=$size; 
  16. $newimagesize[1]=ceil($photosize[1]*$photoX); 
  17. } 
  18. if($rotate==2){ 
  19. $photoX=round($size/$photosize[1],10); 
  20. $newimagesize[0]=ceil($photosize[0]*$photoX); 
  21. $newimagesize[1]=$size; 
  22. } 
  23. $newimage=imagecreatetruecolor($newimagesize[0],$newimagesize[1]); 
  24. imagecopyresampled($newimage,$photofile,0,0,0,0,$newimagesize[0],$newimagesize[1],$photosize[0],$photosize[1]); 
  25. header(&#092;"Content-type: image/jpeg\"); 
  26. imagejpeg($newimage); 
  27.  
  28.  
  29. ?>


jednak całość raz działa, raz nie działa, albo działą wyjątkowo topornie i skrypt pobierz.php przekracza limit czasu wykonania (300s!)

Czy coś tu schrzaniłem, czy nie da się tego zrobić w prosty sposób ?

Pozdrawiam
Patryk
Darti
hmm nie wiem do czego to ma służyć, ale czy możesz zrobić tak, żeby nie wysyłaś z serwera 2 do serwera 1 tej grafiki tylko kazac pobrac ją użytkownikowi?
Po prostu na stronie dac link typu:
  1. <img src="http://www.serwer_z_biblioteka.pl/includes/generuj.php?adres=cos_tam&rozmiar=50&obrot=1">
xPatryk
Witam,

problem w tym, że tamten serwer z biblioteką ma trochę wolne łącze (256 kbps MIR), a strona ma średnio 10 tys odsłon / h, a miniaturki są we wszystkich artykulach, ofertach, etc... więc troszkę by to się spowolniło...
Darti
no cóż - i tak wysyłasz ten obrazek z tamtego serwera (z gd) do swojego, to zamiast do swojego serwa wyślij go do użytkownika. Powinno trochę przyspieszyć.
Ewentualnie - zastosuj jakis sposob cache'owania obrazkow (w Twoim sposobie) na serwerze bez gd.
xPatryk
Witam..

chodziło mi o to, by miniaturkę wygenerować tylko raz i zapisać na dysku serwera przy dodawaniu zdjęcia...

nie za każdym wywołaniem strony winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.