не может отобразить изображение в PHP - PullRequest
0 голосов
/ 29 сентября 2011

вот мой код для отображения изображения -

$username = "xxxxxxxx";
$password = "xxxxxxxx";
$host = "000.001.000.000";
$database = "xxxxxxxx";

@mysql_connect($host, $username, $password) or die("Can not connect to database:         ".mysql_error());
@mysql_select_db($database) or die("Can not select the database: ".mysql_error());
$query = mysql_query("SELECT mimetype, Image FROM table ORDER BY id DESC LIMIT 0,1");
$row = mysql_fetch_array($query);
$content = $row['Image'];
header('Content-type: image/jpg');
echo $content;

Это ошибка, которую я получаю

Изображение «http://www. ...» не может быть отображено, поскольку оно содержит ошибки.

что не так?Тип данных поля в MySQL является Medumblob

Ответы [ 3 ]

1 голос
/ 29 сентября 2011

ОК, первый тест, чтобы увидеть, что происходит:

<code>$username = "xxxxxxxx";
$password = "xxxxxxxx";
$host = "000.001.000.000";
$database = "xxxxxxxx";

if( !mysql_connect($host, $username, $password) )
  die( 'Unable to connect to Server: '.mysql_error() );
if( !mysql_select_db($database) )
  die( 'Can not select the Database: '.mysql_error() );

$query = mysql_query( "SELECT mimetype, Image FROM table ORDER BY id DESC LIMIT 0,1" );

if( !$query )
  die( 'Query Failed: '.mysql_error() );
if( mysql_num_rows( $query )==0 )
  die( 'Query Returned No Records' );

$row = mysql_fetch_array($query);

echo '<pre>';
var_dump( $row );
echo '
';

Это должно показать вам результаты из базы данных или сообщение об ошибке. Если вы видите сообщение об ошибке, исправьте все, что его вызывает ...

После вышесказанного просто возвращает содержимое строки базы данных:

$username = "xxxxxxxx";
$password = "xxxxxxxx";
$host = "000.001.000.000";
$database = "xxxxxxxx";

if( !mysql_connect($host, $username, $password) )
  die( 'Unable to connect to Server: '.mysql_error() );
if( !mysql_select_db($database) )
  die( 'Can not select the Database: '.mysql_error() );

$query = mysql_query( "SELECT mimetype, Image FROM table ORDER BY id DESC LIMIT 0,1" );

if( !$query )
  die( 'Query Failed: '.mysql_error() );
if( mysql_num_rows( $query )==0 )
  die( 'Query Returned No Records' );

$row = mysql_fetch_array($query);

header( 'Content-type: '.$row['mimetype'] );
echo $row['Image'];

(при условии, что поле mimetype выглядит как «image / jpg»)

0 голосов
/ 29 сентября 2011

Я бы предложил изменить заголовок, чтобы он был динамичным, в зависимости от типа изображения mime:

header('Content-type: '.$row['mimetype']);
0 голосов
/ 29 сентября 2011

Я бы предложил добавить заголовок длины содержимого перед выводом:

header("Content-length: " . strlen($content))
...