2014-12-07 102 views
0

我想上傳圖像,並將其保存在我的sql數據庫。 我試着上傳了幾張圖片,但是每次我得到[BLOB - 0 B]。 我檢查file_uploads =在php.ini中無法保存圖像在phpMyAdmin數據庫,得到[BLOB - 0 B]

這是我的代碼: regklub.php

<html> 
<head></head> 
<body> 
<form action="regklub.php" method="post" enctype="multipart/form-data"> 
    Logo: <input type="file" name="logo"><input type="submit" name="Submit" value="Upload"> 
</form> 
<?php 
if(isset($_POST['submit'])) 
{ 
    define('DB_NAME', 'lala'); 
    define('DB_USER', 'root'); 
    define('DB_HOST', 'localhost'); 
    $link = mysql_connect(DB_HOST, DB_USER,); 
    if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
$db_selected = mysql_select_db(DB_NAME, $link); 
if (!$db_selected) { 
die('Can\'t use ' . DB_NAME . ': ' . mysql_error()); 
} 

    $imageName = mysql_real_escape_string($_FILES["logo"]["name"]); 
    $imageData = mysql_real_escape_string(file_get_contents($_FILES["logo"]["tmp_name"])); 

    echo $imageData; 


} 
?> 

</body> 
</html> 
+1

phpMyAdmin是**不是**數據庫。代碼中沒有任何內容將任何內容插入到任何分區中 – 2014-12-07 20:48:11

+0

也不會顯示處理文件上載中的任何代碼。我們需要最小可行的示例代碼。你也可能認真想重新考慮在DB中存儲圖像。在大多數情況下,這是一個糟糕的主意。 – 2014-12-10 04:21:42

回答

0

一個例子給你

一個例子

$erroimagem= ""; 
$extensoes['extensoes'] = array('jpg', 'png', 'jpeg', 'JPG', 'JPEG'); 
$imagem = addslashes(file_get_contents($_FILES['imagem']['tmp_name'])); 
$extensao = strtolower(end(explode('.', $_FILES['imagem']['name']))); 

    if (array_search($extensao, $extensoes['extensoes']) === false) { 
     $erroimagem = "Por favor, envie arquivos com as seguintes extensões: jpg, png"; 
    } elseif ($_FILES['imagem']['size'] > 1000000) { 
     $erroimagem = "O arquivo enviado é muito grande, envie arquivos de até 2Mb."; 
    } 

    if(empty($erroimagem)) { 

    $query = mysql_query ("INSERT INTO utilizadores(imagem) VALUES ('$imagem', now())") or die (mysql_error()); 

    } 
+0

爲什麼這樣:「echo $ imageData;」部分代碼不起作用?我不會在這個教程中看到這些標誌https://www.youtube.com/watch?v=kPGxWaIhLmk(5:25) – lluka 2014-12-07 21:18:07