2015-02-06 2 views
-1

프로필 사진을 처리하기 위해 새 디렉토리를 만들려고하지만 이미지를 업로드 할 때마다 새 디렉토리가 만들어지지 않고 아무런 오류가 없습니다. 난 이미 여기 PHP mkdir이 새 디렉토리를 만들지 않습니다.

은 여러가 내 코드

//profile image upload script 
    if (isset($_FILES['profile_pics'])) { 
     if (((@$_FILES["profile_pics"] ["type"] == "image/jpeg" || (@$_FILES["profile_pics"] ["type"] == "image/png") || (@$_FILES["profile_pics"] ["type"] == "image/gif")) && (@$_FILES["profile_pics"] ["size"] < 1048576))) // LESS THAN ONE MEGABYTE 

     { 
      $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; 
      $rand_dir_name = substr(str_shuffle($chars), 0, 15); 
      mkdir("userdata/profile_pics/$rand_dir_name"); 




     else { 

     } 

} }

+2

파일 상단에 오류보고를 추가하십시오 :' 그리고 오류를 알려주십시오. 또한 새 하위 디렉토리를 만들 수있는 디렉토리의 사용 권한을 확인하십시오 – Rizier123

+2

새 디렉토리를 만드는 디렉토리에 적절한 권한이 있는지 확인하십시오 – Nick

+0

도움이 될 수 있습니다 : http://stackoverflow.com/questions/7101840/ mkdir-failed-creating-directory-php? rq = 1 http://stackoverflow.com/questions/13908722/php-unable-to-create-a-directory-with-mkdir?rq=1 –

답변

1

의 샘플입니다 ... 아파치 오류 로그를 확인,하지만 내 최근의 코드에 관한 오류를 발견하지 않았다 PHP에서 오류가 발생했습니다. 아파치 로그에 치명적인 오류가 보이지 않았습니까? 제거 -

  • 귀하의 if 질의는 귀하의 else 문이 braket
  • 당신은 @와 오류를 억제하고 누락 제대로
  • 닫히지 않습니다!
  • 당신이 디렉토리 여기

을 만드는 곳에서 오류를 방지하기 위해 상대 경로 대신 절대 경로를 사용하는 것은 보는 방법의 예 :

// array of valid image types 
$valid = array('image/jpeg', 'image/png', 'image/gif'); 

if (isset($_FILES['profile_pics'])) { 

    // if the file type is in the valid array and the size is less than 1MB 
    if (in_array($_FILES['profile_pics']['type'], $valid) 
     && ($_FILES["profile_pics"]["size"] < 1048576)) 
    { 
     $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; 
     $rand_dir_name = substr(str_shuffle($chars), 0, 15); 
     mkdir($_SERVER['DOCUMENT_ROOT'] . "/userdata/profile_pics/$rand_dir_name"); 

    } else { 
     print('too big or not an image.'); 
    } 
} 

편집

mkdir 응답을 확인해야합니다.

$ok = mkdir($_SERVER['DOCUMENT_ROOT'] . "/userdata/profile_pics/$rand_dir_name"); 

    if(!$ok) 
    { 
     print('error creating directory, check your permissions'); 
    } else { 
     print('created directory successfully!'); 
    } 
+0

if (in_array ($ _ FILES [ 'profile_pics'] [ 'type'], $ valid)에 괄호가 없습니다. ' –

+0

@ Fred-ii- 나에게 잘 어울린다 ... OP가 읽기 쉽도록 문장이 두 줄로 나뉘어져있다 .. 어쩌면 혼란 스럽다. ('&&'에주의한다.) –

+0

Ok, 내 실수 Danny. '&&'에 대한 권리 - 내 IDE에 입력 한 것과 똑같이. –

0

권한을 추가하십시오.

mkdir ("/ path /", 0755);

관련 문제