我有这段代码:
$filename = $_FILES['file']['name'];
$blob_value = [CODE TO CONVERT FILENAME TO BINARY];
$query = "INSERT INTO uploads VALUES('$blob_value');";
mysql_query($query);
我想将图像文件转换为等效的blob_value并将其插入数据库。我怎么想这样做。谢谢你的回复!
答案 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文件,您可以轻松搜索该文件。