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服務器之間的高流量 –