![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 26.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
na początek dodam, że uczę się dopiero języka PHP (na podstawie informacji zaczerpniętych z google oraz książki). Piszę stronkę dzięki której będę mógł generować dokumenty PDF (ulotki itp). Problem mam następujący, że użytkownik może: a ) Nie dodawać loga do dokumentu PDF b ) Dodać wbudowane logo c ) Wgrać własne logo, które zostanie dodane do dokumentu PDF Z A i B problemu nie ma, jednak problem pojawia się, gdy użytkownik wrzuci własne zdjęcie, które będzie większe niż ja założyłem...wtedy wyjdzie on za ramy dokomentu, a tego nie chcę. Nie chcę również, narzucić maksymalnej wielkości zdjęcia, które użytkownik wgra. Po prostu jeśli rozdzielczość jest większa powiedzmy od 150x150 px to następuje skalowanie. W internecie znalazłem najbardziej przemawiający do mnie skrypt php, wg. którego pobierane jest zdjęcie, następuje skalowanie i zapisanie zmienionego obrazka. Sprawdziłem, błędu nie wyrzuca, ale również nie skaluje:( Poniżej prezentuje znaleziony kod (ścieżka jest moja):
Jakieś sugestie? ![]() |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 7 Dołączył: 27.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Funkcje przetestowałem, zdaje się działać prawidłowo i jak najbardziej skaluje zdjęcie.
Upewnij się, że masz odpowiednie uprawnienia do zapisu pliku. Funkcja nadpisuje plik. A poza tym we wklejonym przez Ciebie fragmencie brakuje tylko wywołania funkcji resize. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 26.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Upewnij się, że masz odpowiednie uprawnienia do zapisu pliku. Ustawiłem na tym konkretnym obrazku maksymalne prawa (Prawy PM -> Właściwości -> Zabezpieczenia mam nadalne Pełna kontrola/Modyfikacja/Odczyt i wykonanie/Odczyt/Zapis, czyli wsio co tylko mogłem dać). W Xampp'ie jest dołączona FileZilla, w której z tego co wiem można sprawdzić uprawnienia do plików, jednak w ogóle nie pokazuje mi żadnych plików/folderów. Na szybkiego wrzuciłem fraze w google i wychodzi na to, że będę musiał na routerze zrobić przekierowanie portów. Cytat A poza tym we wklejonym przez Ciebie fragmencie brakuje tylko wywołania funkcji resize. Bez wywołania funkcji nie dostaję błędu, ani obrazek nie jest skalowany. Oto troszkę zmieniony kod:
Bez wywołania "resize('obrazki/slonecznik.jpeg', 150);" nie dostaję żadnych błędów, ale i obrazek nie jest skalowany. Po wywołaniu funkcji dostaję następujące błędy: Cytat Warning: getimagesize(obrazki/slonecznik.jpeg) [function.getimagesize]: failed to open stream: No such file or directory in C:\xampp\htdocs\testowanie\scale.php on line 14 Warning: Division by zero in C:\xampp\htdocs\testowanie\scale.php on line 16 Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\xampp\htdocs\testowanie\scale.php on line 19 Warning: imagecreatefromjpeg(obrazki/slonecznik.jpeg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\xampp\htdocs\testowanie\scale.php on line 23 Warning: imagecopyresampled() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\testowanie\scale.php on line 34 Warning: imagejpeg() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\testowanie\scale.php on line 36 Załamka:( Ten post edytował danon198901 5.10.2012, 20:54:59 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 7 Dołączył: 27.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Warning: getimagesize(obrazki/slonecznik.jpeg) [function.getimagesize]: failed to open stream: No such file or directory in C:\xampp\htdocs\testowanie\scale.php on line 14 Pierwszy komunikat błędu mówi, że skrypt nie może załadować pliku. Proponuje sprawdzić, czy aby na pewno ścieżka do pliku jest prawidłowa. Jeśli nie jesteś pewny ścieżki relatywnej do pliku to najlepiej zacznij od użycia ścieżki absolutnej do pliku (typu 'C:\xampp\htdocs\obrazki\sloneczniki.jpeg') albo dla testu umieść obrazek w tym samym katalogu co skrypt i w funkcji jako pierwszy parametr użyj tylko nazwy pliku. A dla pewności zawsze możesz użyć file_exists Cytat Bez wywołania "resize('obrazki/slonecznik.jpeg', 150);" nie dostaję żadnych błędów, ale i obrazek nie jest skalowany. ...co świadczy o tym, że składnia funkcji jest prawidłowa, a problem może wynikać z winy jej parametru ![]() Ten post edytował wladimirec 5.10.2012, 23:26:04 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 26.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Cytat albo dla testu umieść obrazek w tym samym katalogu co skrypt i w funkcji jako pierwszy parametr użyj tylko nazwy pliku. Już wczoraj próbowałem i kończy się to tymi samymi komunikatami:( Cytat Jeśli nie jesteś pewny ścieżki relatywnej do pliku to najlepiej zacznij od użycia ścieżki absolutnej do pliku Stosując: resize('C:\xampp\htdocs\obrazki\sloneczniki.jpeg', 150); również dostaję te warningi. Co do file exist...wcześniej mogę sobie wywołać <img src... /> i obrazek mi się wyświetli...czyli istnieje i jest 'widoczny'. Cytat A dla pewności zawsze możesz użyć file_exists Odwołując się do funkcji file_exist:
Moim oczom ukazuje się informacja "Plik nie istnieje" ![]() @EDIT No nie wierzę...sprawdzałem poprawność ścieżki kilkakrotnie...a okazuje się, że w skrypcie miałem nazwę sloneczniki, a plik nazywa sie slonecznik. Ehhh, ale wstyd:P Dzięki za pomoc @wladimirec ![]() Ten post edytował danon198901 6.10.2012, 09:49:23 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 07:39 |