조은호 홈페이지

| 한의학 정보 | 건강 정보 | 카메라와 캠코더 | 홈페이지 관련 | 컴퓨터 관련 | 디자인 세상 | 기독교 신앙 | G12/Cell | 물생활 |
| 도시 정원 | 문화 | 생활 체험 정보 | 오늘도 말씀과 함께 | 포토 겔러리 | 동영상 겔러리 |
| 조은호 정송화 (가족 홈) | 리동철 유미현 | 동사무소 |
| 용정 복지관 후원회 | 입주 홈페이지 | 사이트 맵 |


 아이디 
패스워드

 
로그인 안될 때

홈페이지 관련


전체 메뉴 목록
|| 홈페이지 내 현재 위치 ▶ 조은호 홈페이지 > 홈페이지 관련 > Php || 사이트 맵 이동(move to sitemap)

12   1/1

 내용보기

작성자


조은호 (2004-03-26 23:31:17)

홈페이지

http://www.urhelper.com

제목


업로드(upload) 구현 소스
PHP를 이용한 업로드 기능을 구현하는 소스입니다.



테스트를 위해서 두개의 파일을 만들어 보겠습니다.

업로드 소스가 필요하신 분들께 도움이 되었으면 하는 마음과

제 소스의 부족한 부분의 조언 부탁드립니다.



소스의 설명은 주석부분을 참고해 주세요...^^a



우선 첫번째 파일은 사용자가 업로드를 위한 파일을 선택하는 페이지입니다.

그냥 간단히 작성하면...



파일명 : test1.php



<form name="form" method=post action="test2.php" enctype="multipart/form-data">

<input type='file' name='userfile'><br>

<input type=submit value=업로드>

<input type=reset value=취소>

</form>



두번째 파일은 위에서 사용자가 업로드한 파일을 처리하는 페이지입니다.

이 파일에서 맨위에 $dir 변수는 자신의 테스트서버 환경에 맞는 폴더를 설정해 주세요.

그리고 폴더 퍼미션은 최소 707 이어야 합니다.



파일명 : test2.php



<?
$dir = "upload/"; //저장될 폴더 경로(끝에 '/'슬래시 꼭 붙여주세요...^^)

$varName = "userfile"; //이전 페이지에서 설정된 file 변수명
$allowExt = "jpg,gif,png"; //업로드 가능한 확장자 (,)콤마로 구분

$prefix = time(); //파일명 앞에 자동으로 붙을 단어



function goBack($msg='', $url='') {
   echo "<script>";
   if($msg) echo 'alert("'.$msg.'");';
   if($url) echo 'location.replace("'.$url.'");';
   else echo 'history.go(-1);';
   echo "</script>";
}



if($_FILES[$varName][name] $_FILES[$varName][error] == 0) {
   // $dir 폴더가 지정됐고, 사용가능 한지 검사
   if(!$dir) {
      goBack("업로드 폴더가 지정되지 않았습니다.");
      exit;
   }
   if(!is_writable($dir)) {
      goBack("업로드 폴더 권한을 확인해 주세요.");
      exit;
   }

   // php.ini 파일에 설정된 upload_max_filesize 값을 이용해서 업로드 파일이 용량을 초과했는지검사
   $allowSize = intval(substr(ini_get(upload_max_filesize),0,-1)) * 1024 * 1024;
   if($allowSize < $_FILES[$varName][size]) {
      goBack("파일 용량이 허용된 용량을 초과했습니다.");
      exit;
   }

   // 정상적인 방법으로 업로드 된 파일인지 검사 후 정상이면 파일 업로드 처리
   if(is_uploaded_file($_FILES[$varName][tmp_name])) {
      // 확장자 검사
      $ext = substr(strrchr($_FILES[$varName][name],"."),1);
      if($ext) {
         $allow = explode(",",$allowExt);
         if(is_array($allow)) $check = in_array($ext,$allow);
         else $check = ($ext == $allow) ? true : false;
      }
      if(!$ext || !$check) {
         goBack("업로드 불가능한 확장자 입니다.");
         exit;
      }

      // 파일명 생성 및 존재하는지 검사
      $newfile = md5($prefix.$_FILES[$varName][name]);
      if(file_exists($dir.$newfile)) {
         goBack("같은이름의 화일이 있습니다. 화일명을 변경하고 업로드 하시기 바랍니다.");
         exit;
      }

      // $dir 에 파일 저장
      if(!move_uploaded_file($_FILES[$varName][tmp_name], $dir.$newfile)) {
         goBack("파일 업로드에 실패했습니다.");
         exit;
      }
      if(!chmod($dir.$newfile,0707)) {
         goBack("퍼미션변경에 실패했습니다.");
         exit;
      }
   }



   echo "<br>실제파일명 : ".$_FILES[$varName][name]."<br>저장된 파일명 : ".$newfile;
   /*
   - 여기에 디비에 저장하는 구문을 작성합니다.
   - DB 에 저장시 두개의 파일명을 저장해야 합니다. 보안상 저장시 암호화 하여 저장하였기에 다운받을 때는 실제 파일명으로 다운 받을 수 있도록 하기 위함입니다.
   - 파일명은 실제파일명 : $_FILES[$varName][name], 저장된 파일명: $newfile 입니다.
   - 예:mysql_query("update table set real_file_name = '".$_FILES[$varName][name]."', new_file_name = '".$newfile."' where no = '".$no."'");
   */
}
?>
스팸방지코드 여기를 클릭해 주세요.    새로고침     

|| 간단한 답글 달기
:   : 위의 보안코드 입력 후 (비회원)
번호 제목 작성일 조회
12
 위지윅 에디터 종류
2011/03/18 4871
11
 GM 에디터 소스
2011/03/18 4743
10
 대용량 업로드를 위한 php.ini 설정
2010/09/14 3630
9
 사랑비 BGM 2.1
2009/11/05 3822
8
 PHP 프로그램 속도 올리는 20가지
2004/03/27 8210

 업로드(upload) 구현 소스
2004/03/26 7607
6
 다운로드(download) 구현 소스
2004/03/26 7209
5
 php 한글 메뉴얼 [2]
2004/03/26 6204
4
 페이지가 뜨는 속도 알아 보기.
2003/12/22 4767
3
 사랑향기 무료배포 카운터 [1]
2003/05/05 4478
2
 자기 홈 또는 서버 연지 며칠이 지났는지 알 수 있는 php 소스
2003/02/24 3984
1
 게시물 읽은 사람들 리스트 보여주기(수정) [1]
2003/01/09 3646
1

    일반 
  유투브 모바일 동영상 사이즈 링크 가로세로 비율 완벽해결 [출처] 유투브 모바... 
  SCM Music Player 
  Html 간단한 속성 
  도메인 서비스 가장 싼 업체 소개 합니다 
  구글이 지원하는 "무료 웹폰트" 
  무료 RSS 제공 사이트 및 소셜 네트워그 RSS 무료 포스팅 사이드 (추천) 
  블로그에 SNS 공유버튼 달기, 트위터 리트윗 버튼 + 페이스북 공유하기 버튼 ... 

    포토샵 
  JPG파일 여러장을 한장으로 합치기 (자동으로)  [1]
  [후보정] Adobe GAMMA 만가지고 모니터 셋팅하기 
  포토샵 젤리 스타일  [1]
  포토샵 100여가지의 스타일  [1]
  페이지 말린 효과를 만드는 필터 
  알아두면 유용한 73가지 포토샵팁!!  [1]
  채널의 모든것을 까발린다. 

    Php 
  위지윅 에디터 종류 
  GM 에디터 소스 
  대용량 업로드를 위한 php.ini 설정 
  사랑비 BGM 2.1 
  PHP 프로그램 속도 올리는 20가지 
  업로드(upload) 구현 소스 
  다운로드(download) 구현 소스 

    자바 
  [script] 초간단 iframe크기 자동 조절하기 
  홈페이지를 시작페이지 설정하기 소스 
  날짜와 시간을 넣는 자바 소스입니다.. 
  도메인마다 다른 페이지로 연동되게 할수가 없나요? 
  배너를 모자이크로 슬라이드한다! 
  팝업창 바로 띄우기 
  아이프레임 자동으로 늘어나는 자바 스크립트 

    폰트 관련 
  무료 폰트 다운로드 / 링크 사이트. 
  조선일보 명조체 
  [무료다운로드] 웹폰트(트루타입) 23종 공개합니다. 
  이른바 "웹 폰트"를 쓰지 말아야 하는 이유 
  폰트는 FontStruct에서 만들었어요! 
  웹폰트 변환 방법 
  네이버 나눔 폰트 
    제로보드 4 
  스팸 방지 - 스팸프리 
  제로보드 4에서 한글 첨부파일 다운로드시 다운로드 안되는 현상 해결방안 
  php 4.3.x 버젼 대에서 ''정상적으로 글을 작성하여 주시기 바랍니다."  [4]
  악성스크립트, 해킹등으로 괴로움을 겪는 제로보드4 이용자님들께 [펌글] 
  config.php 파일명 변경 관련 - 보안 사항 
  특정게시판, 특정요일에 7일전 게시물 전부 삭제하기 
  일정 기간이 지난 후 게시물과 파일 자동 삭제 

    제로보드 4 FAQ 
  제로보드 4 관련 정보 
  제 홈페이지에 외부 로그인을 달고 싶습니다.. 
  제로보드 pl2로 업그레이드를 하려면 어떻게 하나요?  [1]
  어째서 관리자의 정보는 없나요? 자기소개에 글도 안써지고;;  [1]
  나의 계정 사용 용량을 알 수 있습니까?  [1]
  내 홈의 절대 경로 확인하는 법 
  노프레임이란? 

    제로보드 4 질문 
  제로보드에 사랑비넣기  [1]
  전체쪽지 보내기 소스 좀 알려주세요ㅠㅠ  [1]
  팝업창에 대하여  [1]
  1:1게시판(상담게시판)에 관련해 문의합니다.  [1]
  질문 있습니다. 
   파일을 올립니다.  [1]
  안녕하셨어요... 질문이 또 있어서요.  [1]

    개인 서버 만들기 
  Link Shell Extension / 윈도우즈에서 심볼릭 링크 
  홈페이지 속도 떨어뜨리는 접속 통계 사이트 
  445포트(smb) 죽이고 살리기 
  445 포트 제거하기 
   port 139, 445번 이해,차단- 라우팅 및 원격 액세스 서비스 (RAS ser... 
  HP ProLiant MicroServer 사양  [1]
  HP Proliant MicroServer 

제 홈페이지(조은호 홈페이지)에 오신 것을 환영합니다. 이 홈페이지는 제 개인 홈페이지로 제가 직접 관리하고 있습니다.
제 홈페이지는 비영리 홈페이지이며 자료 제공만을 목적으로만 만들어진 것이 아니라, 제 개인적인 자료 정리와 관리의 목적으로
만들어졌으므로 각 메뉴마다 충분한 자료가 없을 수도 있습니다. 인터넷을 통해 수집된 것이 많으므로 그 출처를 밝혀 놓았습니다.
혹시 저작권이나 초상권에 문제가 있는 자료의 경우 연락 주시면 삭제해 드리도록 하겠습니다.
본 홈페이지에 적용된 글꼴은 윈도우즈의 '굴림'체, '우리글닷컴'의 '우리새봄', '우리돋움90c1' 체, '(주)예쁜글씨'의 '좋은_여행가는날-웹'이며 유료로 등록 사용중입니다.

본 홈페이지에 포함되거나 게시된 이메일(email)주소가 이메일 수집 프로그램이나 그 밖의 기술적 장치를 이용하여 무단으로 수집되는 것을 거부하며,
이를 위반할 경우 정보통신망 이용촉진 및 정보보호 등에 관한 법률 등 관계 법령에 의해 형사 처벌됨을 유의하기기 바랍니다.

Copyright 2002 All right reserved          This Homepage was Designed & Programmed By Cho Eunho