2012-08-08 5 views
0

사용자를 가져올 디렉토리를 가져올 수없는 것 같습니다. id 변수 ($ id)이 파일 경로에 있습니다. 회원 폴더에 곧바로 업로드하는 것은 아무런 문제가되지 않지만 일단 등록하는 동안 사용자 ID를 기반으로 생성 된 고유 폴더를 찾으려고하면로드 블록됩니다.고유 한 사용자 ID를 기반으로 PHP 파일을 디렉토리에 업로드

<?php 
$id = $_SESSION['id']; 
$udir= "members/.$id./"; 
$ufile = $udir . basename($_FILES['file']['name']); 
$allexts = array("jpg", "jpeg", "gif", "png"); 
$ext = end(explode(".", $_FILES["file"]["name"])); 
if ((($_FILES["file"]["type"] == "image/gif") 
    || ($_FILES["file"]["type"] == "image/jpeg") 
    || ($_FILES["file"]["type"] == "image/pjpeg") 
    || ($_FILES["file"]["type"] == "image/png")) 
    && ($_FILES["file"]["size"] < 2000000) 
    && in_array($ext, $allexts)){ 
    if (move_uploaded_file($_FILES['file']['tmp_name'], $ufile)) { 
     echo "File upload was successful."; 
    } else { 
     echo "An error has occured. Please try again."; 
    } 
} else { 
    echo "Invalid file type. Please try again."; 
} ?> 
+0

귀하의'$의 udir'가 나옵니다 도트 폴더. –

+0

$ udir = "회원/$ id /"; –

+0

@arxanas 예, 연결 기간없이 사용해 보았습니다. – Craig

답변

0

if(!is_dir($udir)){ 

    mkdir("members/".$id, 0777); 
} 

코드를 시도 : 여기

내가 함께 지금까지 재현 한 것입니다 -

<?php 
$id = $_SESSION['id']; 
$udir= "members/".$id."/"; 

if(!is_dir($udir)){ 

    mkdir("members/".$id, 0777); 
} 

$ufile = $udir . basename($_FILES['file']['name']); 
$allexts = array("jpg", "jpeg", "gif", "png"); 
$ext = end(explode(".", $_FILES["file"]["name"])); 
if ((($_FILES["file"]["type"] == "image/gif") 
    || ($_FILES["file"]["type"] == "image/jpeg") 
    || ($_FILES["file"]["type"] == "image/pjpeg") 
    || ($_FILES["file"]["type"] == "image/png")) 
    && ($_FILES["file"]["size"] < 2000000) 
    && in_array($ext, $allexts)){ 
    if (move_uploaded_file($_FILES['file']['tmp_name'], $ufile)) { 
     echo "File upload was successful."; 
    } else { 
     echo "An error has occured. Please try again."; 
    } 
} else { 
    echo "Invalid file type. Please try again."; 
} 
+0

디렉토리가 이미 만들어졌지만 내 구문이 틀렸어. 그것을 고쳐 주셔서 감사합니다. – Craig

관련 문제