我有一个问题上传图像在数据库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中的数组到字符串转换
答案 0 :(得分:1)
为什么要尝试在数据库中存储* $ _ FILES *数组? * $ _ FILES *是一个数组,用于存储有关您刚上传的文件的信息,因此数组到字符串错误。
上传文件时,文件暂时存储在服务器上。您需要正确处理文件上传 - 即将其保存在某处,然后将此路径存储在数据库中。
你总是可以序列化* $ _ FILES *数组并存储它,虽然我不知道它会用什么用,因为它只引用你服务器上暂时存在的文件。