我只是尝试将文件作为字符串读取然后将其转换为十六进制十进制,然后将该数据推送到DB中的varbinary字段。问题是当我试图打开一个显示无效数据的文件时。
$filname=$_FILES["upload"]["name"] ;
$filesize=filesize($_FILES['upload']['tmp_name']);
$contents=file_get_contents($_FILE['upload']['tmp_name]);
$value='0x'.strtoupper($value);
这是我的代码片段,因此在存储时会导致问题
答案 0 :(得分:0)
'0x'.strtoupper($value)
并未使用十六进制表示法神奇地表示$value
的内容。
您需要使用一个知道如何使用十六进制表示法表示值的每个字节并且PHP函数为bin2hex()
的函数。如果您使用的数据库语言需要数据前面的0x
前缀(可能知道数据以十六进制表示形式表示),那么您的代码应该是:
$value = '0x'.bin2hex($content);