2013-06-28 131 views
-1

我開發了一個將圖像上傳到數據庫的代碼。將img導入數據庫

的圖像保存在一個文件夾(IMG)和db是路徑圖像

我有一個函數來爲每個圖像的隨機名稱,這是我的問題出現時,圖象被送到到目標文件夾,但只有名,沒有擴展名的圖像(JPEG,PNG ...),並不能顯示的...

if(count($error) == 0){ 

preg_match("/\.(gif|bmp| png| jpg|jpeg){1}$/i", $imagem["name"], $ext); 

$nameImg = md5(uniqid(time())).".".$ext[1]; 

$pathImg ="img/".$nameImg; 

move_uploaded_file($img ["tmp_name"], $pathImg); 

$sql = mysql_query("INSERT INTO user VALUES (' ', ' ".$name. " ', ' ".$email. "', ' ".$nameImg. "') "); 

我在做什麼錯?

謝謝

+0

對於初學者,添加一些錯誤捕捉。那麼,究竟是什麼***不工作? – Kermit

+0

您不需要擴展程序即可顯示圖像。 ''應該可以正常工作。 –

回答

0

preg_match模式有問題。我刪除了空格和{1},它只對應1個符號。

preg_match("/\.(gif|bmp|png|jpg|jpeg)$/i", $imagem["name"], $ext); 
+0

謝謝!現在使用這個擴展名保存圖片!(1a70e808a99af4ad1391d3c691b5f5ca.png) 但是if試圖展示形象仍然失敗 $ SQL =請求mysql_query( 「SELECT * FROM用戶的ORDER BY ID DESC!」); 而($ USER = mysql_fetch_object($ SQL)){ \t \t echo「」; ? } > – asobreiro

+0

你的回答讓我的代碼工作:) – asobreiro

+0

呀,所以你得按我的附近的答案打勾:d – vikingmaster

0

您可以簡單地使用以下檢索文件擴展名,然後將其添加到最後。

$ext = pathinfo($imagem['name'], PATHINFO_EXTENSION); 

$pathImg ="img/".$nameImg.".".$ext; 
0

在png和jpg之前的ER中有一個空間。這可能是錯誤。您也可以嘗試在移動文件之前檢查是否有擴展名。 P.S. $ imagem包含什麼?

+0

$ imagem = $ _FILES ['imagem'];已經工作:)但我無法顯示$ sql = mysql_query(「選擇*從用戶ORDER BY ID DESC」); while($ user = mysql_fetch_object($ sql)){echo「「;}?> – asobreiro