如何通过php5将照片上传到mysql

时间:2013-04-25 01:36:47

标签: php mysql blob

我有一个问题上传图像在数据库mysql像blob类型我要包括脚本数据库和表单的代码和PHP上传文件

sql脚本

   CREATE TABLE IF NOT EXISTS `images` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `data` longblob NOT NULL,   `descripcion` varchar(240) COLLATE utf8mb4_spanish2_ci NOT NULL,   PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish2_ci AUTO_INCREMENT=1 ;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

index.html(上传表单)

<html>
    <head>

    </head>

    <body>
        <form method="post" action="insertar.php" enctype="multipart/form-data">
        <label>elige imagen:</label>
        <br/>
        <input type="file" name="imagen"/>
        <br/>
        <label>descripcion:</label>
        <br/>
        <textarea cols="20" rows="10" name="texto"></textarea>
        <br/>
        <input type="submit" value="enviar"/>
        </form>
    </body>
</html>

insertar.php(上传代码)

<?php
    include "conexion.php";


    $archivo=$_FILES['imagen']['name'];
    $texto=$_POST['texto'];
    $id=rand(1,200);

    $insertar=mysql_query("INSERT INTO image VALUES('".$id."','".$archivo."','".$texto."')");

    if($insertar){
        echo "<a href='verImagenes.php'> ver mis imagenes</a>";
    }else{
        echo "fallo la insercion";
    }
?>

这是错误消息:

  

注意:第9行的C:\ xampp \ htdocs \ ejemplo \ insertar.php中的数组到字符串转换

1 个答案:

答案 0 :(得分:1)

为什么要尝试在数据库中存储* $ _ FILES *数组? * $ _ FILES *是一个数组,用于存储有关您刚上传的文件的信息,因此数组到字符串错误。

上传文件时,文件暂时存储在服务器上。您需要正确处理文件上传 - 即将其保存在某处,然后将此路径存储在数据库中。

你总是可以序列化* $ _ FILES *数组并存储它,虽然我不知道它会用什么用,因为它只引用你服务器上暂时存在的文件。