파일업로드
참고URL: http://www.php.net/manual/kr/features.file-upload.php#features.file-upload.post-method
클라이언트 머신에 존재하는 파일의 원래 이름.
브라우저가 이 정보를 제공할 경우에, 파일의 mime 형식. 예를 들면 "image/gif".
업로드된 파일의 바이트로 표현한 크기.
서버에 저장된 업로드된 파일의 임시 파일 이름.
- <?
$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
bool is_file ( string filename)
filename이 존재하고, 정상적인 보통의 파일이라면(regular) TRUE를 반환
이 함수의 실행결과는 캐시가 됩니다. 좀 더 자세한 내용을 알고 싶으면 clearstatcache()를 보세요.
사용예제
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 래퍼도 지원합니다.
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 |