2012-07-02 4 views
0

나는 파일을 업로드하고 우리 디렉토리의 uploads 폴더에 저장하고 싶습니다. 내가했던 그 해당 코드 .. 하지만 오류가 ..PHP를 사용하여 파일 업로드

"경고 working..here되어 있지 사용하여 : 인 move_uploaded_file (업로드/1341221475 :: 1aaaa.text는) : 스트림을 열지 못했습니다 : 사용 권한이 거부를 in /var/www/html/PHP/upload_file.php on line 24 경고 : move_uploaded_file() :/var/www/html /에있는 '/ tmp/phpSZhm3c'를 'uploads/1341221475 :: 1aaaa.text' 라인 24 PHP/upload_file.php는에 저장 :

이 도움을 주시기 바랍니다 AAAA/aaaa.text "

코드 :

  if($_FILES["file"]["error"] > 0) 
      { 
       echo "ERROR ".$_FILES["file"]["error"]."<br>"; 
      } 
      else 
      { 
       echo "NAME : ".$_FILES["file"]["name"]."<br>"; 
       echo "TYPE : ".$_FILES["file"]["type"]."<br>"; 
       echo "SIZE : ".($_FILES["file"]["size"]/1024)."KB<br>"; 
       echo "Stored in : ".$_FILES["file"]["tmp_name"]."<br>"; 
       if (file_exists("aaaa/" . $_FILES["file"]["name"])) 
         { 
        echo $_FILES["file"]["name"] . " already exists. "; 
         } 
       else 
         { 
       $target_path = "uploads/"; 
        $target_path = $target_path . time() . $_SERVER['REMOTE_ADDR'] . basename($_FILES['file']['name']); 
         move_uploaded_file($_FILES["file"]["tmp_name"],$target_path); 
         echo "Stored in: " . "aaaa/" . $_FILES["file"]["name"]; 
         } 
      } 
+0

폴더에 권한을 부여하십시오. –

+0

당신은 리눅스 chmod 그것을 실행하는 경우. 그것의 간단한 사용 권한 문제 – Akshat

답변

0

웹 서버가 특정 사용자 (예 : "www")에서 실행되고 있습니다. 사용자가 업로드 폴더에 대한 쓰기 권한이 있는지 확인하십시오.

+0

예, 루트 권한이 있습니다. –

+0

웹 서버가 루트로 실행되지 않을 수 있습니다. 예를 들어 Apache를 사용하는 경우 루트로 시작하면 다른 사용자 (예 : "www")의 프로세스가 생성됩니다. – DPlusV

0

출력 디렉토리의 소유자로 Apache에 권한을 부여하면 파일을 만들 수 있습니다.

0

코드를 사용하여 파일을 작성할 때마다 코드를 실행하는 사용자에게 권한이 있어야합니다. 이 경우 아파치 웹 서버를 시작한 사람은 해당 폴더에 쓸 수있는 권한이 있어야합니다. 사용 권한을 지정하려면 chmod 명령을 사용하십시오.

보안에 대한 걱정이 거의없는 경우 이와 같이 업로드 폴더에 777을 제공하면됩니다. 업로드 폴더를 가정의/var/www/html/사이트/업로드에서, 다음

chmod -R 777 /var/www/html/site/uploads 

HTH

0

당신이 그것으로 파일을 이동할 수 있도록 업로드 폴더 전체 권한이 있는지 확인 실행됩니다.

업로드 디렉토리에 chmod 777 -R을 시도하십시오. 예 :

$ sudo chmod 777 -R /var/www/html/PHP/uploads/ 
관련 문제