2014-05-23 2 views
-1

고객의 ID로 서버에 업로드 된 이미지가 있습니다. 하지만 여러 파일 형식을 두 번 업로드하고 싶지는 않습니다. (예 : 고객 ID = 1 인 이미지는 1.jpg 또는 1.png이어야합니다.)체크 파일이 PHP의 정규 표현식과 함께 존재합니다.

이미지를 업데이트하는 동안 어떻게 전역으로 확인할 수 있습니까? 파일이 이미 있거나 없습니까?

파일의 확장자가없는 파일을 확인할 수 있습니까?

이 명령을 사용하여 파일을 검사하고 있습니다.

file_exists('./media/customer-id/'.$cus_id); 
+1

확인 [중복 응답] (http://stackoverflow.com/questions/3303691/php-check-file-exists-without-knowing-the-처럼 사용 extension # answer-3303718)를 게시했습니다. 당신은'glob()'을 사용할 필요가 있습니다. [이 댓글 (_stackoverflow.com/questions/3303691/php-check-file-exists-without-knowing-the-extension#comment-3422841) _ @ Gumbo_ 님이 귀하의 질문에 정확하게 답변합니다. 중복 된 질문을 게시하지 않도록 사이트를 검색하십시오. – War10ck

답변

0

사용 scandir() 명령과 같은 ls를 실행하고 디렉토리 내용의 배열을받을 수 있습니다. 그런 다음 파일을 반복하여 고객 ID와 일치하는 것이 있는지 확인하십시오.

$exists = false; 
foreach(scandir('./media/customer-id') as $file) { 
    if(preg_match('/^' . $customer_id . '\.$/', $file)) { 
     $exists = true; 
     break; 
    } 
} 
1

여기에 glob()을 사용하고 결과를 계산할 수 있습니다.

function patternExists($pattern) { 
    return count(glob($pattern)) > 0; 
} 

if (patternExists("./media/customer-id/".$cus_id."*")) { 
    // bad! 
} 
+2

'glob()'는 다소 준 정규 표현식입니다. '?'와'*'를 제외한 모든 문자 중 '?'는 '/'를 제외한 모든 문자 중 0 개 이상과 일치합니다. 간단한 해결책을 위해 +1. – Sam

+1

@Sam thx, PHP의 공식을 사용하기 위해 이름을 변경했습니다. – kero

+0

@kingkero : 브라우저에서 이미지를 보지 않고 이미지를 보는 방법. – user3609998