Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 25.09.2010 Ostrzeżenie: (0%)
|
Witam,
widzę, że problem, który opisałem wczoraj w dziale MySQL nie jest taki prosty jak się spodziewałem Nie działało mi wyświetlanie obrazków przechowywanych w BLOBIE. Niestety po zmianie sposobu zapisu na zapisywanie na serwerze, które notabene działa bardzo ładnie, ze zmianą rozmiaru formatu itp., nadal mam problem z wyświetlaniem obrazków. taki skrypt u mnie nie działa, mimo, że generowanie i zapisanie na serwerze sie spisuje: (zawartosc pliku generuj.php) Kod <? header("Content-type: image/gif"); $obrazek = ImageCreate(80,40); ImageGif($obrazek); ImageDestroy($obrazek); ?> po otworzeniu tego pliku uzyskuje informacje: Cytat Obrazek "http://mojserwer/generuj.php" nie może zostać wyświetlony, ponieważ zawiera błędy. To samo dzieje się kiedy robię: showavatar.php?id=mysikun Kod <? include ('funkcje_glowne.php'); $db = polaczZBaza(); $id = $_GET['id']; $zapytanie = "select avatar from `avatars` where id='$id'"; $wynik = $db -> query($zapytanie); if(($wynik -> num_rows) != 0){ $wiersz = $wynik -> fetch_assoc(); $nazwa = $wiersz['avatar']; $sciezka = "upload/".$nazwa; $img = imagecreatefromjpeg($sciezka); header("Content-type: image/jpeg"); imagejpeg($img); } $db -> close(); ?> uzyskuję także ten sam komunikat. chciałem wcześniej wyświetlać te obrazki w innym pliku "pokazavatar.php" poprzez: <img scr="showavatar.php?id='.$id.'"/>"; ale oczywiście nie może to działać. Proszę wskażcie mi mój błąd, bo straciłem na to zagadnienie blisko dobę i na prawdę nie mogę znaleźć błędu. Czemu przy wyświetlaniu wygenerowanych obrazków wyskakuje mi błąd? Generowanie i zapis przebiegają poprawnie np ten kod działa: Kod <? $db = polaczZBaza(); // wczeczniej SĄ PODANE zmienne nazwa itp $sciezka = "upload/".$nazwa; if($sp[1] == "jpeg"){ // Sprawdzamy jakie rozszerzenie miał plik i wykonujemy dla niego nowy obrazek; $img = imagecreatefromjpeg($sciezka); } elseif($sp[1] == "png") { $img = imagecreatefrompng($sciezka); } elseif($sp[1] == "jpg") { $img = imagecreatefromjpeg($sciezka); } elseif($sp[1] == "gif") { $img = imagecreatefromgif($sciezka); } $a = imagesx($img); // pobieramy szerokość i wysokość $b = imagesy($img); if($a > $b){ //Zmieniamy wielkość obrazka w tym wypadku szerokość musi być 150 a wysokość proporcjonalna. $na = 150; $nb = 150 * ($b / $a); }elseif($a < $b){ $na = 150 * ($a / $b); $nb = 150; }else{ $na = 150; $nb = 150; } $new_img = imagecreatetruecolor($na, $nb); // tworzymy nowy obrazek o danych wymiarach $cz = ImageColorAllocate($new_img,8 ,24 ,40); // tworzenie koloru. atrybuty to kolejno nowy obrazek i 3 kolory RGB - Red Green Blue ImageFill($new_img,1,1,$cz); // tworzenie tła obrazka imagecopyresampled($new_img, $img, 0, 0, 0, 0, $na, $nb, $a, $b); $s = explode(".",$nazwa); unlink('upload/'.$nazwa); // usuwamy poprzedni plik avataru użytkownika @imagejpeg($new_img, "upload/".$s[0].".jpg", 100); // cyfra 9 oznacza jakosc miniaturki, osobiscie polecam wartosc 100 $sciezka_do_pliku2 = "upload/".$s[0].".jpg"; $db -> query("UPLOAD avatars SET avatar='$sciezka_do_pliku2' where id='$id'"); $db -> close(); } } ?> Po zapisie na serwerze plik ma wszystkie zadane parametry i się normalnie otwiera. Proszę o pomoc.. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%)
|
Skoro obrazki generują się dobrze i po zapisaniu ich na serwer nie ma problemu winnym nie jest sam skrypt generujący obrazki tylko sposób wysyłania ich do przeglądarki. Upewnij się, że zwracając wynik do przeglądarki nie przesyłasz jakiś niepotrzebnych znaków(np. zanków BOM) lub nagłówków. Zalecaną praktyką jest pomijanie na końcu skryptów php znaku kończącego blok php '?>' oraz buforowanie wyniku przy pomocy funkcji ob_start.
|
|
|
|
mikolodz Tworzenie obrazków nie działa 26.09.2010, 12:53:51
mikolodz Cytat(bigZbig @ 26.09.2010, 14:20:51 ... 26.09.2010, 15:48:30
fander Jak to kolego glaczego, do przeglądarki wysyłasz
... 27.09.2010, 08:40:21 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 20:24 |