如何插入图片?

时间:2014-03-23 09:03:44

标签: php html mysql

以下是我的代码文件... 我无法插入图像。获取错误,未定义变量:图像

<html>
    <head>
        <title> Upload an image </title>
    </head>
    <body>
        <form action="image-disp.php" method="post" enctype="multipart/form-data">
            File:
            <input type="file" name="image" value=iamge><br>
            <input type="submit" value="Upload">
        </form>
        <?php
        mysql_connect("localhost", "root", " ") or die(mysql_error());
        mysql_select_db("mysql") or die(mysql_error());
        echo "connected";
        if (!isset($_FILES['image'] ['tmp_name'])) {
            echo "Choose an image";
        } else {
            echo $image = addslashes($_FILES['image'] ['tmp_name']);
            echo $image_name = addslashes($_FILES['image']['name']);
            echo $image_size = getimagesize($_FILES['image'] ['tmp_name']);
        }
        if ($image_size = FALSE) {
            echo "It's not an image";
        } else {
            $result = "INSERT INTO testblob (image_id, image, image_size) "
                    . "VALUES (' ' ,'$image', '$image_size')";
        }
        echo "inserted";
        ?> 
    </body> 
</html> 

3 个答案:

答案 0 :(得分:1)

最好只保存数据库中图像的名称,以及某个文件夹中的文件

$result = "INSERT INTO testblob ( image, image_size) 
                         VALUES ('$image_name', '$image_size')"; 

然后你就这样检索它:

<img src="path/<?php echo $row['image_name'];?>">

答案 1 :(得分:0)

首先创建一个表。 MySQL的查询

CREATE TABLE storeimage ( image_id tinyint(3) NOT NULL AUTO_INCREMENT, image blob NOT NULL, KEY image_id (image_id) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

将图像存储在数据库中的代码:

<html> <body> <form action="image-disp.php" method="POST" enctype="multipart/form-data">

File: <input type="file" name="image" method="POST"> <input type="submit" value="submit" name= "submit"> </form>

<?php mysql_connect("localhost", "root", "root") or die (mysql_error()); mysql_select_db("mysql") or die (mysql_error());

if (isset($_FILES['image']['tmp_name'])) { $image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); $image_name = $_FILES['image']['name']; }

if(isset($_POST['submit'])) { $insert = mysql_query("INSERT INTO storeimage VALUES ('', '$image')"); echo " file inserted"; } ?>

</body> </html>

答案 2 :(得分:-2)

您的错误来自PHP,而不是MySQL。它说你的变量$ image没有被定义,因为它没有填充任何内容。

您的代码不会存储实际图像,而是存储文件名。

您需要删除空格。

echo $image = addslashes($_FILES['image']['tmp_name']);

此外,您甚至没有执行查询...

if ($image_size == FALSE) {
    echo "It's not an image";
} else {
    $result = mysql_query("INSERT INTO testblob (image_id, image, image_size) "
            . "VALUES (' ' ,'$image', '$image_size')");
}

点击此处查看基本示例:http://www.w3schools.com/php/php_file_upload.asp