2014-12-07 122 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