웹마스터 팁

^.^ 언제나 재밌는 소스만 들고오는 아이쿠입니다.
이번에도 역시 늘그렇듯이 서버에 부담을 주는 소스 입니다.

그림파일을 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를 붙잡고 있어야 하니.. ^^;

그럼 이만 줄입니다. ^^;
제목 글쓴이 날짜
자신의 디비내용을 출력해주는 소스 [출처: phpschool.com] [5] 석이™ 2003.02.05
제로보드식 에러페이지 만들기 [2] .zeve 2003.02.04
야구 자료실 2 (목록 만들기) 한꼬마 2003.02.02
야구 자료실 만들기 1 [8] file 한꼬마 2003.01.30
PHP,자바스크립트 활용하기 #1 -무단링크라는 것은... [21] ☆좀비파우더™ 2003.01.30
^.^ 그림을 DB에 집어넣어 버리기.. [13] 아이쿠 2003.01.30
lotto 번호 추출기 [7] 갑빠™ 2003.01.29
제로보드 코멘트 수정 기능 구현!! [13] teslaMINT 2003.01.28
NZEO 쪽지 수신 허용/거부 따라하기 ~(=ㅁ=)~ [12] teslaMINT 2003.01.28
[제로카운터 수정하기#4-초보용] 인트로에서 카운트 체크하고 메인에서 카운트 보여주기 [3] 김태훈 2003.01.22
[제로카운터 수정하기#3-초보용] 어제 오늘 방문자수 변경하기 김태훈 2003.01.22
[제로카운터 수정하기#2-초보용] 새로 설치후 예전 방문자수로 고치기(최고방문자수 문제해결됨) 김태훈 2003.01.22
[제로카운터 수정하기#1-초보용] 테이블 다 지우고 새로 설치하기 [2] 김태훈 2003.01.22
엔지오 처럼 주소 /?channel=about 식으로 만들기 [18] 위니 2003.01.21
국내 IP 조회하는 클래스.(소켓사용) [1] 행복한고니 2003.01.17
텍스트 링크, 배너 링크*랜덤 (틀팁포함) [3] 둘리나라™ 2003.01.16
파일 하나로 끝내는-_- NZEO 북마크...-_-a [14] ineal 2003.01.13
웹 인증 보호, 윈도우 로그인 폼 이용 (authenticate) [9] file 둘리나라™ 2003.01.13
[동주아빠] PHP 게시판(끝.29강) - 삭제(delete_ok.php) [18] 손병목 2003.01.11
[동주아빠] PHP 게시판(28강) - 삭제(delete.php) 손병목 2003.01.11