파일업로드

참고URL: http://www.php.net/manual/kr/features.file-upload.php#features.file-upload.post-method

$_FILES['userfile']['name']

클라이언트 머신에 존재하는 파일의 원래 이름.

$_FILES['userfile']['type']

브라우저가 이 정보를 제공할 경우에, 파일의 mime 형식. 예를 들면 "image/gif".

$_FILES['userfile']['size']

업로드된 파일의 바이트로 표현한 크기.

$_FILES['userfile']['tmp_name']

서버에 저장된 업로드된 파일의 임시 파일 이름.

$_FILES['userfile']['error']
<?
$uploaddir = '/home/kojaedoo/html/DownLoadFile/';
$uploadfile = $uploaddir . $_FILES['fileName']['name'];

print "<pre>";

if (move_uploaded_file($_FILES['fileName']['tmp_name'], $uploadfile)) {
   print "파일이 존재하고, 성공적으로 업로드 되었습니다.";
   print "추가 디버깅 정보입니다:\n";
   print_r($_FILES);
}

else {
   print "파일 업로드 공격의 가능성이 있습니다! 디버깅 정보입니다:\n";
   print_r($_FILES);
}
print "</pre>";
?>

is_dir

bool is_dir ( string filename)
filename이 존재하고 디렉토리이면 TRUE를 반환합니다.

이 함수의 실행결과는 캐시가 됩니다. 좀더 자세한 내용을 알고 싶으면 clearstatcache()를 보세요

참조is_file()그리고 is_link().

is_file

bool is_file ( string filename)
filename이 존재하고, 정상적인 보통의 파일이라면(regular) TRUE를 반환

이 함수의 실행결과는 캐시가 됩니다. 좀 더 자세한 내용을 알고 싶으면 clearstatcache()를 보세요.

참조is_dir() 그리고 is_link().

사용예제

if(is_file("images/10.jpg")) echo 'file exists';

opendir (PHP 3, PHP 4 , PHP 5)

opendir -- 디렉토리 핸들을 엽니다.

설명
resource opendir ( string path)

closedir(), readdir(), rewinddir() 호출에서 사용하는 디렉토리 핸들을 반환합니다.

path가 유효하지 않은 디렉토리이거나, 권한 제한이나 파일시스템 에러로 인해 디렉토리를 열 수 없는 경우, opendir()FALSE를 반환하고 E_WARNING 레벨의 PHP 에러를 발생합니다. opendir() 앞에 '@'를 붙여 에러 출력을 없앨 수 있습니다.

예 1. opendir() 예제

<?php
$dir = "/tmp/";
// 알고 있는 디렉토리를 열어서, 내용을 읽어들이는 작업입니다.
if (is_dir($dir)) {
   if ($dh = opendir($dir)) {
       while (($file = readdir($dh)) !== false) {
           echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
       }
closedir($dh);
   }
}
?>

PHP 4.3.0부터 path는 디렉토리 목록을 지원하는 URL일 수 있지만, PHP 4.3에서는 file:// URL 래퍼만 지원합니다. PHP 5.0.0부터는 ftp:// URL 래퍼도 지원합니다.

참고: is_dir(), readdir(), Dir

readdir

(PHP 3, PHP 4 , PHP 5)

readdir -- 디렉토리 핸들에서 엔트리를 읽습니다.

설명

string readdir ( resource dir_handle)

디렉토리에서 다음 파일의 파일명을 반환합니다. 반환하는 파일명의 순서는 파일시스템에 저장한 순서입니다.

readdir()의 반환값은 아래 예제체럼 확인해야 하는 점에 주의하십시오. 반환값이 FALSE와 완전히 동일한지 (형까지 일치--자세한 정보는 비교 연산자를 참고하십시오) 확인하고 있습니다. 이렇게 하지 않으면, FALSE로 인식하는 디렉토리 엔트리에서 루프가 멈춥니다. (예. 디렉토리 이름이 "0")

예 1. 디렉토리 안의 모든 파일 목록

<?php
// !== 은 4.0.0-RC2까지 존재하지 않았던 점에 주의하십시오.
if ($handle = opendir('/path/to/files')) {
   echo "Directory handle: $handle\n";
   echo "Files:\n";
/* 디렉토리 안을 루프하는 올바른 방법입니다. */
while (false !== ($file = readdir($handle))) {
       echo "$file\n";
   }
/* 디렉토리 안을 루프하는 *틀린* 방법입니다. */
while ($file = readdir($handle)) {
       echo "$file\n";
   }
closedir($handle);
}
?>

unlink

(PHP 3, PHP 4 , PHP 5)

unlink -- 파일을 삭제하기

Description

int unlink ( string filename)

filename을 삭제합니다. Unix C의 unlink() 함수와 비슷합니다.

0 이나 FALSE를 반환합니다.

참조 디렉토리를 제거하는데 rmdir()

간단한 사용예)

<?php

     if(file_exists($file))
     unlink($file);

?>

[간단한 중복방지 파일 업로드]

$_FILES : enctype="multipart/form-data" 넘겨주면 $_FILES 로받을수 있습니다

$file_name : 파일을 넘겨주는 input type 필드 이름

$uploaddir :  저장디렉토리

사용법

$lastFileName = CheckFile(  $_FILES ,  "file_name" , $uploaddir  );

echo "중복안된파일네임="$lastFileName;

function CheckFile(  $_FILES , $file_name ,  $uploaddir  ){

if($_FILES != null){
  $uploadfile = $_FILES[ $file_name ]['name'];
   while ( true ){
    ///CheckFileName() 를 이용하여 그 디렉토리에 파일이 있는지 없는지 검색합니다.
    if( CheckFileName( $uploadfile , $uploaddir ) ){
     //같은이름이 발견되서 파일네임 변경
     $uploadfile = strtotime("now")  ."_". $uploadfile;
    }else{
     //파일저장
     move_uploaded_file($_FILES[ $file_name ]['tmp_name'], $uploaddir.$uploadfile);   
     break;
    }
   }
  }else{
  return null;
  }

return $uploadfile;
}
//중복된 파일네임체크
function CheckFileName( $uploadfile , $uploaddir ){
if( is_file($uploaddir. $uploadfile) ){ 
  return true; 
}else{
  return false;
}

}

'PHP' 카테고리의 다른 글

iconv 를 이용한 인코딩변환 하기  (0) 2010.02.01
[ob_get_contents] 출력버퍼를 이용해서 버퍼의 내용가져오기  (0) 2010.01.29
나의 PHP 유틸클래스  (0) 2010.01.08
PHP 초보들을 위한 초간단 TIP  (0) 2010.01.08
문자열함수  (0) 2009.12.15
[PHP]기본문법  (0) 2009.12.15
[FUNCTION] 자주쓰는 함수  (0) 2009.12.15
[MYSQL]간단한 사용법  (0) 2009.12.15
PHP 가로로 출력  (0) 2009.04.08
PHP 기본문법  (0) 2009.04.06

+ Recent posts