Wyświetlenie obrazu na stronie zapisanego w bazie

Witam.

Dodałem funkcjonalność zapisywania obrazków (wg. tego linku) w bazie mysql w polu ‘blob’ i wszystko gra oprócz tego iż nie mogę wyświetlić ich na stronie w widokach index.php i view.php.

Zwraca mi błąd:


htmlspecialchars() [<a href='function.htmlspecialchars'>function.htmlspecialchars</a>]: Invalid multibyte sequence in argument 


C:\WebPages\Pages\tvk-pr\framework1.1.9\web\helpers\CHtml.php(85)


73      */

74     public static $liveEvents = true;

75 

76     /**

77      * Encodes special characters into HTML entities.

78      * The {@link CApplication::charset application charset} will be used for encoding.

79      * @param string $text data to be encoded

80      * @return string the encoded data

81      * @see http://www.php.net/manual/en/function.htmlspecialchars.php

82      */

83     public static function encode($text)

84     {

85         return htmlspecialchars($text,ENT_QUOTES,Yii::app()->charset);

86     }

87 

88     /**

89      * Decodes special HTML entities back to the corresponding characters.

90      * This is the opposite of {@link encode()}.

91      * @param string $text data to be decoded

92      * @return string the decoded data

93      * @see http://www.php.net/manual/en/function.htmlspecialchars-decode.php

94      * @since 1.1.8

95      */

96     public static function decode($text)

97     {




Wg. mnie musisz stworzyć nowa akcje kontrolera (np. actionImage), która zwróci obrazek. Na samym początku akcji zwracasz do przeglądarki nagłówek z odpowiednim content-type (w php funkcja header). następnie drukujesz na ekranie zawartość pola blob. Na końcu możesz dać exit.

Teraz w widoku korzystasz z klasy pomocniczej CHtml i drukujesz obrazek jako adres podając nowo stworzona akcje.

Mam nadzieje ze dobrze cię nakierowalem :)