웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
^.^ 그림을 DB에 집어넣어 버리기..
2003.01.30 11:12
^.^ 언제나 재밌는 소스만 들고오는 아이쿠입니다.
이번에도 역시 늘그렇듯이 서버에 부담을 주는 소스 입니다.
그림파일을 DB에 넣는 방법입니다.
그림파일을 Base64방식으로 엔코딩후 DB에 저장 불러올때는 디코딩해서 보여줍니다. ^^;
MySQL 기준입니다. ^^;
DB에 테이블을 일단 만들어야 겠지요.? ^^;
---------------------------------------------------------------------------
CREATE TABLE upfile (
aduid mediumint(9) unsigned DEFAULT '0' NOT NULL auto_increment,
comment text NOT NULL,
PRIMARY KEY (aduid)
);
---------------------------------------------------------------------------
upload.php 그림을 DB에 저장하는 소스입니다.
---------------------------------------------------------------------------
<?PHP
$size = filesize("이미지화일이름"); // 이미지 화일의 크기를 구합니다.
$fp = fopen("이미지화일이름","r");
$haha = fread($fp,$size); // 이미지화일 포인터($fp)를 이미지크기($size) 만큼 읽습니다
fclose($fp);
$end = base64_encode("$haha"); // $haha를 base64 형식으로 변환(엔코딩)합니다
$dbconn = mysql_connect("localhost","사용자아이디","사용자비밀번호") || die("데이터베이스 연결에 실패하였습니다."); // 데이타베이스에 연결합니다.
$status = mysql_select_db("db_name");
$query = "INSERT INTO upfile (comment) VALUES ('$end')"; // $end를 테이블에 넣습니다.
$result = mysql_query($query);
echo("완료");
?>
----------------------------------------------------------------------------------------------------
그럼 저장이 완료 됩니다. 물론 실행시키실때마나 DB에 추가됩니다.
Load.php 그림을 DB에서 불러오는 소스입니다.
----------------------------------------------------------------------------------------------------
<?PHP
$dbconn = mysql_connect("localhost","ibuser","ibpass") || die("데이터베이스 연결에 실패하였습니다.");
$status = mysql_select_db("db_name");
// 데이타베이스에 연결합니다.
$query = "SELECT comment FROM upfile WHERE aduid = 1"; // 테이블에서 aduid필드가 1인 comment를 선택합니다. ^^; 저장데이터가 여러개라면 당연히 숫자만 적당히 조절 선택하여 불러올수 있습니다.
$result = mysql_query($query);
$row = mysql_fetch_row($result);
$my_name = $row[0];
$end = base64_decode("$my_name"); // $haha를 base64 형식으로 만든 텍스트를 복원(디코딩)합니다
echo("$end"); //
?>
----------------------------------------------------------------------------------------------------
^.^ 속도도 괜찮고 쓸만한것 같습니다. 다만 DB에 조금 무리를 줄꺼 같네요.. ^^;
용량이라도 큰 그림을 집어 넣고 불러올려면.. 그만큼 DB를 붙잡고 있어야 하니.. ^^;
그럼 이만 줄입니다. ^^;
이번에도 역시 늘그렇듯이 서버에 부담을 주는 소스 입니다.
그림파일을 DB에 넣는 방법입니다.
그림파일을 Base64방식으로 엔코딩후 DB에 저장 불러올때는 디코딩해서 보여줍니다. ^^;
MySQL 기준입니다. ^^;
DB에 테이블을 일단 만들어야 겠지요.? ^^;
---------------------------------------------------------------------------
CREATE TABLE upfile (
aduid mediumint(9) unsigned DEFAULT '0' NOT NULL auto_increment,
comment text NOT NULL,
PRIMARY KEY (aduid)
);
---------------------------------------------------------------------------
upload.php 그림을 DB에 저장하는 소스입니다.
---------------------------------------------------------------------------
<?PHP
$size = filesize("이미지화일이름"); // 이미지 화일의 크기를 구합니다.
$fp = fopen("이미지화일이름","r");
$haha = fread($fp,$size); // 이미지화일 포인터($fp)를 이미지크기($size) 만큼 읽습니다
fclose($fp);
$end = base64_encode("$haha"); // $haha를 base64 형식으로 변환(엔코딩)합니다
$dbconn = mysql_connect("localhost","사용자아이디","사용자비밀번호") || die("데이터베이스 연결에 실패하였습니다."); // 데이타베이스에 연결합니다.
$status = mysql_select_db("db_name");
$query = "INSERT INTO upfile (comment) VALUES ('$end')"; // $end를 테이블에 넣습니다.
$result = mysql_query($query);
echo("완료");
?>
----------------------------------------------------------------------------------------------------
그럼 저장이 완료 됩니다. 물론 실행시키실때마나 DB에 추가됩니다.
Load.php 그림을 DB에서 불러오는 소스입니다.
----------------------------------------------------------------------------------------------------
<?PHP
$dbconn = mysql_connect("localhost","ibuser","ibpass") || die("데이터베이스 연결에 실패하였습니다.");
$status = mysql_select_db("db_name");
// 데이타베이스에 연결합니다.
$query = "SELECT comment FROM upfile WHERE aduid = 1"; // 테이블에서 aduid필드가 1인 comment를 선택합니다. ^^; 저장데이터가 여러개라면 당연히 숫자만 적당히 조절 선택하여 불러올수 있습니다.
$result = mysql_query($query);
$row = mysql_fetch_row($result);
$my_name = $row[0];
$end = base64_decode("$my_name"); // $haha를 base64 형식으로 만든 텍스트를 복원(디코딩)합니다
echo("$end"); //
?>
----------------------------------------------------------------------------------------------------
^.^ 속도도 괜찮고 쓸만한것 같습니다. 다만 DB에 조금 무리를 줄꺼 같네요.. ^^;
용량이라도 큰 그림을 집어 넣고 불러올려면.. 그만큼 DB를 붙잡고 있어야 하니.. ^^;
그럼 이만 줄입니다. ^^;