我正在设计一个网站,并且有一个新闻区域,可以由管理员进行编辑。有一个标题和条目字段,条目存储在MySQL数据库中。我也在尝试添加允许管理员添加图像(甚至可能是视频)的选项。我可以将图像正确地存储到数据库中(我相信),但是当尝试检索它以显示在我的网页上时,它显示为一堆随机数字,字母和问号符号。有人可以帮我弄清楚我在做什么错吗?
这是我的表单,以及将数据插入数据库的代码:
$title = trim(strip_tags($_POST['title']));
$entry = trim(strip_tags($_POST['entry']));
$image = ($_POST['image']);
$imgContent = addslashes(file_get_contents($image));
$problem = TRUE;
if ($problem) {
// Define the query:
$query = "INSERT INTO entries (entry_id, title, entry, date_entered, image) VALUES (0, '$title', '$entry', NOW(),'$imgContent')";
// Execute the query
if(@mysqli_query($dbc, $query) && ((!empty($_POST['entry'])) || (!empty($_POST['title'])) )) {
print '<p>The blog entry has been added!</p>';
}else{
print '<p style="color: red;">Could not add the entry. Please fill in one of the fields.</p>';
}
}
mysqli_close($dbc);
} // End of form submission IF
print '<form action="add_entry.php" method="post">
<p>Entry Title: <input type="text" name="title" size="40" maxsize="100" /></p>
<p>Entry Text: <textarea name="entry" cols="40" rows="5"></textarea></p>
<p><input type="file" name="image" /></p>
<input type="submit" name="submit" value="Post This Entry!" />
<input type="hidden" name="submitted" value="true" />
</form>';
以下是用于查看新闻页面上的数据的代码:
// Define the query:
$query = 'SELECT * FROM entries ORDER BY date_entered DESC';
if ($r = mysqli_query($dbc, $query)) { // Run the query.
// Retrieve and print every record:
while ($row = mysqli_fetch_array($r)) {
print "{$row['image']}
<dl><dt><h3><strong>{$row['title']}</strong></h3></dt>
<dd>{$row['entry']}<br /><br />\n</dd></dl>";
}
更新:我可以得到它返回文件路径,但是它没有斜杠。有没有简单的方法添加这些斜杠,然后我可以将其返回到图像标签中?
答案 0 :(得分:0)
$image = ($_FILES['image']);
<form action="add_entry.php" method="post" enctype= multipart/form-data>
从数据库中检索图像路径并将其放入img src=""
标记
如果您使用file_get_contents($image)
,则将图像转换为blob()
像这样更正您的代码。