画像ソースを使用してブログ画像を表示しようとしています。以下は、PHPを使用してMYSQLデータベースに画像を挿入し、 '画像'というディレクトリに保存する方法です。インサートは、ブロブ画像をPHPで表示
<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に画像を保存しないでください。代わりに、より有用なデータベースに画像の画像ソースを格納します。 –
Amazon S3ストレージのようなものは@ResheilAgarwalのアドバイスを受けたい場合に画像を保存するのに役立ちます –
どこにBLOBをデータベースに保存していると思いますか?あなたが挿入するのは変数 '$ image'の内容です。その値は' basename($ _FILES ["image"] ["name"]、 "。jpg") 'です。 ... – CBroe