我正在爲使用phpMyAdmin上的MySql數據庫的音樂人設計一個社交網絡類型的網站。我在將圖像文件插入數據庫的網站上遇到問題,然後顯示它們(用於個人資料圖片)。圖像作爲LONGBLOB存儲在數據庫中。將圖像文件插入到MySQL數據庫
如果我直接通過phpMyAdmin添加圖片,它工作正常。它是根據數據庫以.bin格式存儲在LONGBLOB數據類型中的.jpg。在我的網站,我可以查詢和使用完全顯示出來:
<img src="data:image/jpeg;base64,<?php echo base64_encode($memberpicture);?>"
ALT="Member does not have picture" WIDTH=100 HEIGHT=100></img>
但是,如果一個網站的用戶創建一個配置文件,並使用該網站的「創建配置文件」功能,插入一張圖片爲資料圖片,它不顯示他們的個人資料。下面是選擇圖像代碼:
...
<div class="control-group">
<div class="controls">
<label>Band Picture</label>
<input type="file" name="picture"/>
</div>
</div>
...
這裏是插入代碼:
<?php
session_start();
foreach($_POST AS $key => $val) {
$_SESSION[$key]=$val;
}
mysql_connect("***", "***", "***");
mysql_select_db("musicians");
//...declare other values(name, bio, etc...
$cpicture=$_POST['picture'];
$cpicture = stripslashes($cpicture);
$cpicture = mysql_real_escape_string($cpicture);
$profileInsert="INSERT INTO profile(PROFILE_BANDNAME,PROFILE_GENRE,PROFILE_BANDBIO,
PROFILE_PICTURE,PROFILE_ART,PROFILE_MUSICVIDEO,PROFILE_PLAYLIST)
VALUES ('$cbandname','$cgenre','$cbio','$cpicture','$cart','$cvideo','$cplaylist')"
or die(mysql_error());
如果我看的數據庫中,有插入後有一個文件,但它是非常小的(約16個字節),並且無法在網站上或直接從數據庫中查看。它是根據數據庫以.bin形式存儲在LONGBLOB數據類型中的.bin,而不是以.bin形式存儲的.jpg。 任何幫助這個插入將非常感謝!
爲什麼frodo爲什麼 - 請使用文件系統,或爲性能Mongodb + GridFS – user956584 2013-03-18 22:35:22
你確定圖片正在服務器?你可以做一些像copy($ cpicture,「somepath」)的東西,並確保它在那裏,然後再開始嘗試發佈數據庫。也許只是在上傳後直接顯示它以確保? – 2013-03-18 22:39:15