在线发现了几个关于如何以二进制形式将图像上传到mysql数据库表的示例 不是服务器中的链接或文件夹。
当我尝试打印时,图像无法显示
当我检查数据库表时,它以奇怪的格式显示了一堆数据,我假设图像数据
这是代码
if(!empty($_FILES['image']) && $_FILES['image']['size'] > 0 && !empty($_POST['name']))
{
// Temporary file name stored on the server
$tmpName = $_FILES['image']['tmp_name'];
// Read the file
$fp = fopen($tmpName, 'r');
$data = fread($fp, filesize($tmpName));
$data = addslashes($data);
fclose($fp);
显示图片的代码
$sql = "SELECT * FROM `photos` WHERE userName = '$currentUser'";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result))
{
$content = $row['image'];
echo $content;
echo '<p id="caption">'.$row['caption'].' </p>';
}
当我尝试显示图像时我没有得到任何输出,我通过putty检查数据库,我看到了大量奇怪的字符,我假设图像的项目。
想法?
答案 0 :(得分:2)
你最终可以尝试更换这两行:
$content = $row['image'];
echo $content;
搭配:
echo '<img src="data:image/jpeg;base64,' . base64_encode( $row['image'] ) . '" />';