Как преобразовать изображение jpg в правильный тип данных blob с помощью php

<?php
$file_name = $_FILES['files']['name'];
$tmp_name  = $_FILES['files']['tmp_name'];
$file_size = $_FILES['files']['size'];
$file_type = $_FILES['files']['type'];

// The codes written above work fine and have proper information.

$fp = fopen($tmp_name, 'r'); // This one crashes.
$file_content = fread($fp, $file_size) or die("Error: cannot read file");
$file_content = mysql_real_escape_string($file_content) or die("Error: cannot read file");
fclose($fp);

....

Я новичок в PHP. Я пытаюсь сохранить изображение jpg в виде большого двоичного объекта в базе данных, но ужасно борюсь с этим :( Я пробовал много руководств и читал документы, но все равно не повезло. Любые предложения или руководства, которые могут мне помочь..?


person Raccoon    schedule 21.10.2011    source источник
comment
Когда ваш вызов fopen дает сбой, какая ошибка выводится? Попробуйте использовать E_ALL | E_STRICT в качестве уровня сообщения об ошибках, чтобы получить дополнительную информацию.   -  person Jonathan Chan    schedule 21.10.2011
comment
Извините, а каким будет код ..? Я понятия не имею, как использовать то, что вы предложили   -  person Raccoon    schedule 21.10.2011


Ответы (1)


При открытии бинарных файлов с fopen() используйте режим rb, т.е.

$fp = fopen($tmp_name, 'rb');

В качестве альтернативы вы можете просто использовать file_get_contents(), например

$file_content = file_get_contents($tmp_name);

Чтобы улучшить отчет об ошибках, поместите это в начало скрипта.

ini_set('display_errors', 'On');
error_reporting(E_ALL);
person Phil    schedule 21.10.2011
comment
Спасибо!!!! $file_content = file_get_contents($tmp_name); полностью получилось. и Совет по сообщениям об ошибках потрясающий. Я никогда не использовал его для отладки. :Д ‹3‹3 - person Raccoon; 21.10.2011