【发布时间】:2015-03-08 18:53:05
【问题描述】:
所以我想我永远不会得到答案哈哈......
老问题,请阅读编辑
我正在尝试将图片上传到 mysql 数据库后显示。
但是通过firefox尝试打开图片显示如下警告:
图片无法显示,因为它包含错误
我已经为此搜索谷歌几个小时了,但我真的找不到解决这个问题的方法。所以现在你们是我最后的希望了:)
这里是php:
<?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;
?>
编辑 我认为错误出在 insert.php 中。 有人可以看看它并告诉我可能有什么问题吗?谢谢 :) (我认为图片上传不正确)
<?php
session_start();
header('content-type: text/html; charset=utf-8');
$uname = $_POST['username'];
$typ = $_POST['typ'];
$titel = $_POST['titel'];
$content = $_POST['content'];
$timestamp = time();
$db = new mysqli("localhost", "...", "...", "...");
if($db->connect_errno > 0){
die("Unable to connect to database: " . $db->connect_error);
}
if(is_uploaded_file($_FILES['image']['tmp_name'])) {
// Verweis auf Bild
$image = $_FILES['image']['tmp_name'];
// Vorbereiten für den Upload in DB
$data = addslashes(file_get_contents($image));
// Metadaten auslesen
$meta = getimagesize($image);
$mime = $meta['mime'];
}
//create a prepared statement
$stmt = $db->set_charset("utf8");
$stmt = $db->prepare("INSERT INTO artikel (`red`, `typ`, `titel`, `content`, `image`, `mime`, `timestamp`) VALUES (?,?,?,?,?,?,?)");
//bind the username and message
$stmt->bind_param('sssssss', $uname, $typ, $titel, $content, $data, $mime, $timestamp);
//run the query to insert the row
$stmt->execute();
header("Location: erfolg.php");
?>
【问题讨论】:
-
您是否尝试在评论中设置
header?这样,您将看到脚本抛出的任何警告/错误。在将脚本强制为图像之前,请确保不存在任何警告和错误 -
您确定从中获取图像的表名为
artikel? -
@l0lander 是的,我是 :) 这是文章的德语含义。
-
使用 print_r($row) 来确认您是否正在检索图像。要显示图像,您需要指向该位置。 Just name 将仅显示名称。
-
哦,那我已经学到了一些东西:)