【发布时间】:2017-07-28 00:13:27
【问题描述】:
我正在尝试使用图像源显示博客图像。以下是我如何使用 php 将图像插入 MYSQL 数据库并存储到名为“picture”的目录中。插入成功
<form method="post" action="post.php" enctype ="multipart/form-data">
<input type="file" accept="image/png, image/jpeg, image/gif" name="image" id="image"/>
<input type="submit" name="post" value="Post" class="btn btn-primary btn btn-info"/>
</form>
if (isset($_POST['post']) && isset($_FILES['image'])) {
$target_dir = "picture/";
$target_file = $target_dir . basename($_FILES["image"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
$image=basename( $_FILES["image"]["name"],".jpg");
$stmt = "INSERT INTO post (image) values (:image)";
$p = $MySQLi_CON -> prepare($stmt);
$results = $p -> execute(array(
":image" => $image
));
}
但是,这里的问题是,当我尝试在 img-src 中显示它时,图像链接已损坏并且不显示任何内容。我试过echo $key['image'],它似乎输出了正确的图像名称而不是图像本身
<tbody>
<?php
$query = "SELECT * FROM test";
$data = $MySQLi_CON->query($query);
foreach ($data as $key ) {
?>
<tr class="active">
<td><div class = "col-sm-6 col-md-2">
<a class = "thumbnail">
<?php echo '<img src="data:image/jpeg;base64,'.base64_encode( $key['image'] ).'" alt = "Generic placeholder thumbnail"/>';?>
</a>
</div></td>
<td><?php echo $key['image'];?></td> //it gives value such as picture.jpg, image.png
</tr>
<?php
}
?>
</tbody>
【问题讨论】:
-
一个建议。不要将图像存储在mysql中。而是将图像的图像源存储在更有用的数据库中。
-
如果您想接受@ResheilAgarwal 的建议,Amazon S3 存储之类的东西将帮助您存储图像
-
您认为您在哪里将 BLOB 存储到数据库中?您插入的只是变量
$image的内容,其值只是basename( $_FILES["image"]["name"],".jpg")- 这不是BLOB ...