반응형
먼저 BLOB 데이터 타입은 4가지 종류가 있음
TINYBLOB = 2^8 - 1 [256 Bytes]
BLOB = 2^16 -1 [64 KB]
MEDIUMBLOB = 2^24 - 1 [8 MB]
LONGBLOB = 2^32 - 1 [4 GB]
이미지 용량보다 적은 데이터 타입으로 컬럼을 생성하게 되면 데이터깨짐.
본인은 적당한 MEDIUMBLOB로 생성
먼저 DB 생성
CREATE TABLE TESTIMAGE (
IDX INT(6) AUTO_INCREMENT NOT NULL PRIMARY KEY,
IMAGE MEDIUMBLOB);
이미지 업로드 PHP 코드 작성
uploadimage.php
<html>
<head>
<title>Upload image</title>
<style>
body{
background-color: lightblue;
}
input{
width: 50%;
height: 5%;
border: 1px;
border-radius: 05px;
padding: 8px 15px 8px 15px;
margin: 10px 0px 15px 0px;
box-shadow: 1px 1px 2px 1px grey;
font-weight: bold;
}
</style>
</head>
<body>
<center>
<h1>upload / insert ad image into database using php mysql</h1>
<form action="" method="POST" enctype="multipart/form-data">
<label> choose an profile pic: </label></br>
<input type="file" name="image" id="image" /> <br>
<input type="submit" name="upload" value="upload image/data" /> <br>
</form
</center>
</body>
</html>
<?php
include "db.php";
if(isset($_POST['upload']))
{
$file = addslashes(file_get_contents($_FILES["image"]["tmp_name"]));
$query = "insert into studytest (image) values ('$file')";
if(mysqli_query($dbh, $query))
{
echo '<script type="text/javascript"> alert("image profile uploaded"); </script>';
}else
{
echo '<script type="text/javascript"> alert("image profile uploaded"); </script>';
}
}
?>
* enctype="multipart/form-data" = 모든 문자를 인코딩하지 않음을 명시
* $_FILES["image"]["tmp_name"] = 웹 서버에 임시로 저장된 파일의 위치
이미지 불러오기
loadimage.php
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<center>
<form action="" method="POST" enctype="multipart/form-data">
<table>
<thead>
<tr>
<th>IAMGE</th>
</tr>
</thead>
<?php
include "db.php";
$query = "select * from testimage";
$query_run = mysqli_query($dbh, $query);
while($row = mysqli_fetch_array($query_run))
{
echo '<img src="data:image;base64,'.base64_encode($row['image']).'" alt="Image" style="width: 100px; height: 100px;">';
}
?>
</table>
<form>
</cetner>
</body>
</html>
* data:image;base64,'.base64_encode($row['image']) = base64로 인코딩하여 출력
반응형
'Coding > PHP' 카테고리의 다른 글
[PHP] PHP로 Ping 모니터링 구현 (0) | 2022.12.02 |
---|---|
[PHP] 특정 영역 자동 스크린샷 저장 후 가장 최신 이미지 DB 저장 (0) | 2022.11.30 |
[PHP] 특정 디렉터리에서 가장 최신 파일 출력 및 SQL ISNERT (0) | 2022.11.30 |
[PHP] CURL API 사용법 (GET, POST 방식) (0) | 2022.06.25 |
[PHP] 하나의 식별자로 SQL 쿼리 상황별 조정 (0) | 2022.06.25 |