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

时间:2012-04-02 06:21:41

标签: php blob

我有这段代码:

$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 :(得分:0)

也许这就是你需要的东西

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

Theres可能有很多不同的方法来做到这一点,我还没有尝试过这段代码......

答案 1 :(得分:0)

首先,您正在寻找$_FILES['file']['tmp_name'],这是包含文件数据的文件。只是文件名本身没有多大用处。

其次,文件的“BLOB值”只是文件的二进制数据,即文件内容。所以你需要做的就是获取文件“BLOB”数据:

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

第三,存储大文件并不是数据库的设计目的。您应该将文件存储在文件系统中,并且只存储关于数据库中文件的信息。如果要检查是否已有完全相同的文件,请在数据库中存储hash文件,您可以轻松搜索该文件。