Tah*_*ani 23 html php mysql database image-uploading
我试图从HTML表单保存我的数据库中的图像.我编写了PHP代码来完成这项任务.该程序不会生成任何错误消息,但也不会在MySQL数据库中插入图像数据.请检查一下.在这里,我将从我的代码中分享一段摘录.
/*-------------------
IMAGE QUERY
---------------*/
$file =$_FILES['image']['tmp_name'];
if(!isset($file))
{
echo 'Please select an Image';
}
else
{
$image_check = getimagesize($_FILES['image']['tmp_name']);
if($image_check==false)
{
echo 'Not a Valid Image';
}
else
{
$image = file_get_contents ($_FILES['image']['tmp_name']);
$image_name = $_FILES['image']['name'];
if ($image_query = mysql_query ("insert into product_images values (1,'$image_name',$image )"))
{
echo $current_id;
//echo 'Successfull';
}
else
{
echo mysql_error();
}
}
}
/*-----------------
IMAGE QUERY END
---------------------*/
<form action='insert_product.php' method='POST' enctype='multipart/form-data' ></br>
File : <input type='file' name= 'image' >
</form>
Run Code Online (Sandbox Code Playgroud)
错误消息您的SQL语法中有错误; 检查与MySQL服务器版本对应的手册,以便在第1行的''附近使用正确的语法
Wik*_*iun 43
首先,您应该检查您的图像列是否是BLOB类型!
我对你的SQL表一无所知,但如果我试着把自己作为一个例子.
我们得到了字段id
(int),image
(blob)和image_name
(varchar(64)).
所以代码应该是这样的(假设ID总是'1',让我们使用这个mysql_query):
$image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); //SQL Injection defence!
$image_name = addslashes($_FILES['image']['name']);
$sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')";
if (!mysql_query($sql)) { // Error handling
echo "Something went wrong! :(";
}
Run Code Online (Sandbox Code Playgroud)
你在很多方面做错了.不要使用mysql函数 - 它们已被弃用!使用PDO或MySQLi.您还应该考虑在磁盘上存储文件位置.使用MySQL存储图像被认为是Bad Idea™.使用像图像这样的大数据处理SQL表可能会有问题.
您的HTML表单也不符合标准.它应该如下所示:
<form action="insert_product.php" method="POST" enctype="multipart/form-data">
<label>File: </label><input type="file" name="image" />
<input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
边注:
处理文件并将它们存储为BLOB时,必须使用转义数据mysql_real_escape_string()
,否则会导致语法错误.
Sea*_*ean 18
更多细节:
`image` blob
$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
$sql = "INSERT INTO `product_images` (`id`, `image`) VALUES ('1', '{$image}')";
<img src="data:image/png;base64,'.base64_encode($row['image']).'">
归档时间: |
|
查看次数: |
296578 次 |
最近记录: |