在php不工作的情况下显示数据库中的img
我设法将图像上传到数据库(lonblob)。我无法显示该图像: 上传:在php不工作的情况下显示数据库中的img,php,html,css,web,Php,Html,Css,Web,我设法将图像上传到数据库(lonblob)。我无法显示该图像: 上传: if(isset($_POST['pic_upload'])){ if(getimagesize($_FILES['image']['tmp_name']) == FALSE){ echo "Please select an image."; }else{ $image= addslashes($_FILES['image']['tmp_name']); $na
if(isset($_POST['pic_upload'])){
if(getimagesize($_FILES['image']['tmp_name']) == FALSE){
echo "Please select an image.";
}else{
$image= addslashes($_FILES['image']['tmp_name']);
$name= addslashes($_FILES['image']['name']);
$image= file_get_contents($image);
$image= base64_encode($image);
saveimage($name,$image);
}
}
saveimage(将$image写入db字段(键入longblob))
获取图像:
function get_image($userid){
$sql = "SELECT * FROM images WHERE user_id = ".$userid."";
$result = execute_sql($sql);
return $result;
}
显示图像:
<?php
$row = mysqli_fetch_array($img);
echo '<img height="300" width="300" src="data:image/jpeg;base64,'.base64_encode($row[3]).'">';
?>
上传效果很好,但图像没有出现在网站上。您对其进行了两次编码
<?php
$row = mysqli_fetch_array($img);
echo '<img height="300" width="300" src="data:image/jpeg;base64,'.$row[3].'">';
?>
另外,我建议查看
pathinfo()
,您要对其进行两次编码
<?php
$row = mysqli_fetch_array($img);
echo '<img height="300" width="300" src="data:image/jpeg;base64,'.$row[3].'">';
?>
此外,我建议看<代码> PaTyFub()/<代码>,
在保存之前,你已经有了Base64编码,所以为什么在显示之前你必须再次使用Base64编码呢?你应该考虑使用准备好的语句来防止SQL注入。获取或Cookie数据。用户ID通常是从数据库中选择并存储在服务器端变量中。此处未检测到线程。您在$image
和$name
上使用addslashes
做什么?作为文件系统或数据库查询上下文的安全措施,这是完全错误的工具。在保存之前,你已经是64进制编码了,那么为什么你必须在显示之前再按64字节编码?你应该考虑使用准备好的语句来防止SQL注入。SQL注入只能在SQL字符串与POST、GET或Cookie数据直接接触时才执行它的肮脏工作。用户ID通常是从数据库中选择并存储在服务器端变量中。此处未检测到线程。您在$image
和$name
上使用addslashes
做什么?作为文件系统或数据库查询上下文的安全措施,它将是完全错误的工具。