Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MSSQL] Pobieranie zdjęcia z bazy
mike007
post 6.04.2006, 09:29:00
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 6.04.2006

Ostrzeżenie: (0%)
-----


Witam!

Mam taki o to problem:

Buduje sklep internetowy w oparciu o bazę MSSQL, na której działa subiekt. Praktycznie całe zarządzanie odbywa się przez Subiekta GT. Praktycznie wszystko mi już działa. Złożone zamówienie wchodzą odrazu do bazy subiekta itd., ale

no właśnie, ale gdy chce wyjąć obrazek z bazy, który został dodany przez Subiekta to w najlepszym wypadku 2cm obrazke się pojawia, a więcej tylko szare pole wielkości zdjęcia. Próbowałem wielu sposobów np:

  1. <?php
  2.  
  3. $query="SELECT zd_Zdjecie FROM tw_ZdjecieTw WHERE zd_Id=$id";
  4. $result=mssql_query($query);
  5. $image=mssql_fetch_array($result);
  6. header('Content-type: image/jpeg');
  7. imagejpeg($im[zd_Zdjecie]);
  8.  
  9. ?>

przykład wyżej działa w mysql bez problemu. w mssql tylko część się wyświetla albo wcale (w zależności, które zdjęcie chce wyświetlić.

Na necie znalazłem jeszcze taki sposób, wywala błędy, więc albo źlecoś robie albo wogóle to jest źle.
  1. <?php
  2.  
  3. $query="SELECT zd_Zdjecie FROM tw_ZdjecieTw WHERE zd_Id=$id";
  4.  $result=mssql_query($query);
  5. $data=mssql_fetch_array($result);
  6. $data = base64_decode($data[zd_Zdjecie]);
  7. $im = imagecreatefromstring("$data");
  8.  header('Content-type: image/jpeg');
  9.  imagejpeg($im);
  10.  
  11. ?>


W większości przypadków wyświetla się URL do aktualnej strony, a jak wezme pokaż źródło to widze krzaczki.

Czy ktoś może mi pomóc?

Pole w bazie subiekta do przechowywania zdjęcia jest typu image.

Jak ktoś ma pomysł co z tym zrobić to proszę o odpowiedź na forum, albo na maila albo na gg: 3030365.

Pozdro,

Mike
Go to the top of the page
+Quote Post
Zbłąkany
post 6.04.2006, 11:56:22
Post #2


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

Ostrzeżenie: (0%)
-----


Ale widać, że masz problemy z czytaniem ze zrozumieniem winksmiley.jpg Dwa posty pod twoim: "pole image" A pole typu image to zwykłe dane: wyciągasz i wysyłasz headerem jako obrazek smile.gif


--------------------
Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox
Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..."
Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL"
Go to the top of the page
+Quote Post
mike007
post 6.04.2006, 22:16:51
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 6.04.2006

Ostrzeżenie: (0%)
-----


Umiem czytać i czytałem posta ponizej. I wiem jak się wyciąga zdjecie z bazy np mysql. Problem polega na tym, że wyciagajac to zdjecie z bazy mssql wyświetla się tylko część zdjęcia, albo wogóle.

Zdjęcia do bazy są dodawane przez Interfejs subiekta, więc może jest jakoś kodowane, albo nie wiem co.

Rozmawiałem dziś z informatykiem, który też łączył zamówienia online z subiektem gt i też miał problem z wyciąganiem zdjec z bazy subiekta i postanowił w niewykorzystywanym polu dodawać scieżkę do pliku ze zdjęciem, ale dla mnie to nie jest rozwiązanie, bo skoro jest interfejs to po co tworzyć dodatkowy do dodawania zdjęć.

Chyba że coś źle robie nadal, ale pod mysql nigdy nie miałem z tym problemu.

Probowalem jeszcze wyciagnac zdjecie z bazy mssql przeniesc do mysql i wtedy je wyswietlic z mysql w taki sposob jaki wiem ze na 100% dziala w mysql, ale zdjecie sie nie wyswietla.

Moze ma ktos jakas sugestie?
Go to the top of the page
+Quote Post
SongoQ
post 6.04.2006, 22:24:04
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


Wydaje sie ze nieodpowiednie pole. MSSQL uzywa czegos takiego jak pol binarnych o ile pamietam. Nic nie pisales o base ani o innym formacie posrednim, czyli dane musza w bazie lezec w formacie ktory nie zrobi konwersji w bazie. Mozliwe ze to jest to, nie przygladalem sie temu zabardzo ale to moze byc rozwiazaniem.


--------------------
Go to the top of the page
+Quote Post
Zbłąkany
post 7.04.2006, 12:27:27
Post #5


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

Ostrzeżenie: (0%)
-----


Typ image jest polem binarnym, więc nie sądzę, aby API SubiektaGT kodowało zdjęcia smile.gif O ile dobrze pamiętam, a bawiłem się subiektem jakiś czas temu: to API otwierało plik, i żywcem czytało zawartość i wrzucało do bazy, gdzieś przy okazji zapisywało format zdjęcia.


--------------------
Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox
Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..."
Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL"
Go to the top of the page
+Quote Post
Marelek
post 24.08.2007, 12:45:27
Post #6





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 2.04.2003
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Witam.

Mam dokładnie ten sam problem.
Nie wiem czy ktoś już to może rozwiązał.?
Ja próbowałem też przekopiować pole ze zdjęciem do MySQL'a i tu się okazało że obcina na 4KB.
Czyli jeśli obrazek ma poniżej 4KB to pobierze z MSSQL'a cały, jeśli jest wiekszy to utnie na 4KB.

Ten post edytował Marelek 24.08.2007, 13:21:30


--------------------
Pozdrawiam.
Mariusz.
Go to the top of the page
+Quote Post
Marelek
post 25.08.2007, 23:55:00
Post #7





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 2.04.2003
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Witam.

Rozwiązałem problem.
Ograniczenie 4KB jest w domyślnej konfiguracji PHP.
Najprościej jest dodać na począdku skryptu:
  1. <?php
  2. ini_set('mssql.textlimit','32768');
  3. ini_set('mssql.textsize','32768');
  4. ?>

W tym przykładzie zwiększyłem do 32KB i mi chula. smile.gif


--------------------
Pozdrawiam.
Mariusz.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 21:10