Php 无法显示图像,因为它包含错误警告
所以我想我永远也得不到答案哈哈 旧问题,请阅读编辑 我试图在上传到mysql数据库后显示图片 但通过尝试打开图片,firefox显示以下警告: 无法显示图像,因为它包含错误 我已经因为谷歌搜索了好几个小时了,但我真的找不到解决这个问题的方法。所以现在你们是我最后的希望:) 以下是php:Php 无法显示图像,因为它包含错误警告,php,mysql,Php,Mysql,所以我想我永远也得不到答案哈哈 旧问题,请阅读编辑 我试图在上传到mysql数据库后显示图片 但通过尝试打开图片,firefox显示以下警告: 无法显示图像,因为它包含错误 我已经因为谷歌搜索了好几个小时了,但我真的找不到解决这个问题的方法。所以现在你们是我最后的希望:) 以下是php: <?php session_start(); $con = mysql_connect("localhost", "...", "..."); mysql_select_db('...',$co
<?php
session_start();
$con = mysql_connect("localhost", "...", "...");
mysql_select_db('...',$con);
$id = $_GET['id'];
$result = mysql_query("SELECT image, mime FROM artikel WHERE id='$id'");
$row = mysql_fetch_object($result);
header("Content-type: $row->mime");
echo $row->image;
?>
我遵循了来自的指示。我插入了带有附加mime字段的图像,并检查了代码是否正常工作 确认您的mime类型是否正确。如果是,则图像可能已损坏 简单地
header("Content-type: ");
也为我工作
$result = mysql_query("$sql") or die("Invalid query: " . mysql_error());
$row = mysql_fetch_object($result);
/*Only for testing purpose.*/
// echo $row->mime; //This line should output image/jpeg
/*Only for testing purpose*/
/*Only to check output*/
header("Content-type: $row->mime");
echo $row->image;
/*Only to check output*/
试试这个。检查是否正在插入值。如果插入,仍然得到错误,张贴图片的数据库相比,我以前的文章
//create a prepared statement
$stmt = $db->set_charset("utf8");
$stmt = $db->prepare("INSERT INTO artikel (`red`, `typ`, `titel`, `content`, `image`, `mime`, `timestamp`) VALUES (?,?,?,?,?,?,?)");
//run the query to insert the row
$stmt->execute(array($uname, $typ, $titel, $content, $data, $mime, $timestamp));
header("Location: erfolg.php");
您是否尝试在注释中设置
标题
?这样,您将看到脚本抛出的任何警告/错误。在将脚本强制为图像之前,请确保没有警告和错误。是否确定从中获取图像的表名为artikel
?@l0lander是:)这是文章的德语含义。使用print\r($row)确认是否正在检索图像。要显示图像,需要指向该位置。只是名称将只显示名称。哦,然后我已经学到了一些东西:)这是我的工作文件。您可以下载它并在本地服务器中进行测试。你好。。。现在我认为我的loadpic.php工作正常-错误似乎在插入脚本中。你能看一下insert.php并告诉我那里可能有什么问题吗?谢谢:)(我在问题中添加了insert.php)您正在传递7个参数,而在bind中您已经给出了8个参数。您的第五个参数是image,而您正在将$content传递给第五个参数。你能看看你是否正确吗?在这里检查你的bindparam语法我想我已经把$meta传递给了第五个param。。有了bindparam,一切都好了,不是吗?我不知道为什么这一切都不起作用。。。我已经检查了10多次了,就是找不到错误。。有mysql数据库,然后是表单,下一步是insert.php,最后一步是loadpic.php。我不知道这个愚蠢的米萨塔克在哪里。。。这很烦人,看看这个问题,我添加了一个数据库截图。顺便问一下,为图像插入$data正确吗?或者我应该插入$meta还是$image?您正在为图像内容分配$data。所以您只需要为图像插入$data。$meta表示图像大小,$image只是名称的引用。从您上次的更新中,我看到BLOB大小仅为5B。而我的输出为5KB。因此,很明显,您没有上传图像内容。请修改我的最新代码并更新。好的,我更新了。但图像仍然无法显示。嘿,再次。。我添加了我的sql结构的屏幕截图。。。也许是弄错了
//create a prepared statement
$stmt = $db->set_charset("utf8");
$stmt = $db->prepare("INSERT INTO artikel (`red`, `typ`, `titel`, `content`, `image`, `mime`, `timestamp`) VALUES (?,?,?,?,?,?,?)");
//run the query to insert the row
$stmt->execute(array($uname, $typ, $titel, $content, $data, $mime, $timestamp));
header("Location: erfolg.php");