1
我想将我从表单中检索到的图像转换为二进制字符串,以便我可以将它插入到sqlplus表中。我在如何做到这一点的转换环顾四周,我发现大部分的解决方案有这样的:PHP将图像文件转换为二进制字符串
示例表:
CREATE TABLE images (
image_id int,
image blob
PRIMARY KEY (image_id));
表:
<form method="post" enctype="multipart/form-data" action="./Upload/UploadImage.php">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><span style="color: #FF0000;">*</span><br/>
<input type="submit" name="uploadImage" value="Upload Image"></form>
建议转换解决方案:
<?php
$data = file_get_contents($_FILES["file"]["tmp_name"]);
$encoded_data = base64_encode($data);
//echo the data to check it's there
echo "Encoded Data: " . $encoded_data;
?>
如果我回应$data
我得到一个混乱的字符串,但如果我回显$encoded_data
我只是得到:Encoded Data:
然后没有。
我希望能够使用
$sql = 'INSERT INTO images VALUES (1, \'' . $encoded_data . '\')';
(我知道这只是SQL字符串插入此二进制数据到我的数据库 - 该语句的执行是不是我觉得我需要包括)。
更新:我意识到我在我的$encoded_data = base64_encode($data);
线类型,这样的工作,但现在的SQL抛出一个字符串文字太长错误。
我强烈建议在数据库中存储的图像。 –
不幸的是我需要把它作为一个blob存储。虽然我认识到这不现实实用。 – wenincode
如果你'var_dump($ data)'?将文件存储在数据库中会导致数据库和Web服务器之间的高流量 –