![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 578 Pomógł: 69 Dołączył: 15.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Mam problem dotyczący includowania.
Posiadam skrypt grafiki zmniejszającą ją i zapisującą do oddzielnego folderu. Skrypt znajduje się w pliku tworz_min.php. Jednocześnie chciałbym go wywołać w pliku min.php zawierającym też html, jednak jest to niewykonalne za pomocą metody include. Gdy uruchamiam min.php po raz pierwszy php zawiera nagłówek grafiki, więc nic nie wyświetla tylko zapisuje grafikę (działa), gdy odświeżę już mam grafikę. Przy czym oczywiście miało działać za pierwszym razem. Czy jest wyjście z tej sytuacji? min.php: Kod <? if(!file_exists("miniatury/obrazek.jpg")){ $szer=100; $filename="obrazek.jpg"; include("tworz_min.php"); } echo("<img src='miniatury/obrazek.jpg' width=100>"); ?> tworz_min.php Kod <?
header('Content-type: image/jpeg'); list($width, $height) = getimagesize($filename); $new_width = $szer; $new_height = floor($height*$szer/$width); $image_p = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromjpeg($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); imagejpeg($image_p, "miniatury/$filename", 90); ?> |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 4 Dołączył: 1.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
W pliku tworz_min.php niepotrzebnie wysyłasz nagłówki. Usuń polecenie header.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
W pliku tworz_min.php niepotrzebnie wysyłasz nagłówki. Usuń polecenie header. Musisz poinformować przeglądarkę, że będzie wyświetlany obrazek. timon27, spróbuj wywołać plik min.php tak:
Wtedy otrzymasz od razu wyświetlenie obrazka po jego wytworzeniu. Jeżeli chcesz do tego pliku wysłać dodatkowo jakieś informacje, posłuż się:
A odbierz w tym pliku:
I pamiętaj o poprawnych " i ' ![]() -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 4 Dołączył: 1.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Gdy uruchamiam min.php po raz pierwszy php zawiera nagłówek grafiki, więc nic nie wyświetla tylko zapisuje grafikę (działa), gdy odświeżę już mam grafikę. Przy czym oczywiście miało działać za pierwszym razem. Czy jest wyjście z tej sytuacji? Czyli pyta, w jaki sposób wyświetlić grafikę, zaraz po jej wygenerowaniu. Jak znasz inny bądź lepszy sposób, rzuć kodem. -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Musisz poinformować przeglądarkę, że będzie wyświetlany obrazek. A jak otwierasz obrazek via URL, to też ustawiasz MIME? Ew. można by było dać sleep" title="Zobacz w manualu PHP" target="_manual, ale ciężko powiedzieć. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Hmm nie można tak?:
-------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 578 Pomógł: 69 Dołączył: 15.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
@bim2
Nie nie mogę. Działa tylko pierwsze polecenie, drugie już nie jest uruchamiane @Kshyhoo "Wtedy otrzymasz od razu wyświetlenie obrazka po jego wytworzeniu." nie działa ![]() Twój kod nie uwzględnia najważniejszego if. Kod min.php nie ma być uruchamiany zawsze. O to mi chodzi, aby uruchamiał się tylko w przypadku gdy miniatura nie istnieje. Miniaturyzacja kosztuje dużo czasu i nie mogę pozwolić by zawsze była uruchamiana. jednocześnie nie chcę tworzyć sam miniatur, ponieważ jest to dodatkowy element, o którym musi pamiętać osoba wrzucająca obrazki, a nie zawsze jestem to ja. "Czyli pyta, w jaki sposób wyświetlić grafikę, zaraz po jej wygenerowaniu. " Nie. Po prostu zapisuje plik. za drugim razem działa, bo jest uruchamiany w/w if. EDIT: Dzięki Ci bim2, jednak zadziałało. Takie proste, wystarczyło na to "wpaść". Poprawiany kod: min.php: Kod <? if(!file_exists("miniatury/obrazek.jpg")){ echo("<img src='tworz_min.php?szer=100&filename=obrazek.jpg'>"); }else{ echo("<img src='miniatury/obrazek.jpg' width=100>"); } ?> tworz_min.php Kod <?
header('Content-type: image/jpeg'); list($width, $height) = getimagesize($filename); $new_width = $szer; $new_height = floor($height*$szer/$width); $image_p = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromjpeg($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); $filename="miniatury/".$filename; imagejpeg($image_p, $filename, 90); imagejpeg($image_p, null, 90); ?> Ten post edytował timon27 16.07.2009, 09:17:38 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 10:13 |