我正在尝试将我的html表单的图像上传到mysql blob列中。插入已成功完成,但如果知道直接插入mysql的图像显示正确,则图像的显示无法正常工作。
html代码:
<form class="form-horizontal" method='POST' action="add_question_submit.php" id="addQuestionForm" enctype="multipart/form-data">
<div class="form-group">
<textarea rows="4" cols="50" name="question" form="addQuestionForm" placeholder="Enter Question in brief.... " required></textarea><br>
<input type="file" class="form-control" id="image" name="image" required><br>
<input type="text" class="form-control" id="answer" placeholder="Enter Correct Answer" name="answer" required><br>
<input type="number" class="form-control" id="category_id" placeholder="Enter category id (only numeric)" name="category_id" required><br>
<input type="number" class="form-control" id="level_id" placeholder="Enter level id (only numeric)" name="level_id" required><br>
<input type="submit" name="submit" value="submit" class="btn btn-primary">
</div>
</form>
php代码:
$file_temp = base64_encode( file_get_contents( $_FILES['image']['tmp_name'] ) );
$image = getimagesize($file_temp);
$query = "INSERT INTO questions(question_name, image, answer, category_id,level_id)VALUES('$question', '$image','$answer', '$category_id', '$level_id')";
$result = mysqli_query($conn, $query);
header("Location: display_question.php");
显示\u question.php:
<td><?php echo '<img src="data:image/png;base64,'.base64_encode($row['image']).'" />'; ?></br><br/></td>
2条答案
按热度按时间czfnxgou1#
首先,将错误的信息存储到数据库中,存储的是文件大小,而不是编码的图像。
其次,如果已将文件的base64编码版本存储到数据库中,则在从数据库检索文件时不需要再次对其进行编码,以便
<img>
标签应该是第三,也是最重要的一点,您需要使用参数化绑定查询来保护您的应用程序免受sql注入攻击
ggazkfy82#
下面是将图片上传到特定文件夹的功能。您可以使用以下功能:
代码如下: