получить значение BLOB изображения и вставить его в базу данных в php - PullRequest
0 голосов
/ 02 апреля 2012

У меня есть этот код:

$filename = $_FILES['file']['name'];
$blob_value = [CODE TO CONVERT FILENAME TO BINARY];

$query = "INSERT INTO uploads VALUES('$blob_value');";
mysql_query($query);

Я хочу преобразовать файл изображения в его эквивалент blob_value и вставить его в базу данных. как мне это сделать? спасибо за ваш ответ!

Ответы [ 2 ]

0 голосов
/ 02 апреля 2012

Прежде всего, вы ищете $_FILES['file']['tmp_name'], который является файлом, содержащим данные файла . Просто имя файла не очень полезно.

Во-вторых, «значение BLOB» файла - это просто двоичные данные файла, то есть содержимое файла. Итак, все, что вам нужно сделать, чтобы получить данные файла "BLOB":

$blob = file_get_contents($_FILES['file']['tmp_name']);

В-третьих, хранение больших файлов не совсем то, для чего была разработана база данных. Вы должны хранить файл в файловой системе и только информацию о файле в базе данных. Если вы хотите проверить, есть ли у вас точно такой же файл, сохраните хэш файла в базе данных, которую вы можете легко найти.

0 голосов
/ 02 апреля 2012

Может быть, что-то вроде этого - то, что вам нужно

$fileName = $_FILES['userfile']['name'];
$tmpName  = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];

$fp      = fopen( $tmpName, 'r' );

$content = fread( $fp, filesize( $tmpName ) );

fclose( $fp );

$query = "INSERT INTO upload ( name, size, type, content ) ".
"VALUES ( '$fileName', '$fileSize', '$fileType', '$content' )";

mysql_query( $query ) or die( 'Error, query failed' ); 

Вероятно, есть много разных способов сделать это, хотя я не пробовал этот код ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...