获取图像的BLOB值,并将其插入php中的数据库


get the BLOB value of an image and insert it to database in php

我有这个代码:

$filename = $_FILES['file']['name'];
$blob_value = [CODE TO CONVERT FILENAME TO BINARY];
$query = "INSERT INTO uploads VALUES('$blob_value');";
mysql_query($query);

我想将图像文件转换为其等效的blob_value,并将其插入数据库。我该怎么做呢。感谢您的回复!

也许你需要这样的

$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' ); 

虽然可能有很多不同的方法,但我还没有尝试过这个代码。。。

首先,您要查找$_FILES['file']['tmp_name'],它是包含文件数据的文件。仅仅文件名本身没有多大用处。

其次,文件的"BLOB值"只是文件的二进制数据,即文件内容。因此,要获得文件"BLOB"数据,您所需要做的就是:

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

第三,存储大文件并不是数据库的设计初衷。您应该将文件存储在文件系统中,并且只将有关文件的信息存储在数据库中。如果你想检查你是否已经有了完全相同的文件,请在数据库中存储该文件的哈希,你可以很容易地搜索它。