2012-12-07 1 views
1

현재 localhost에서 .csv 파일 업로드 양식을 사용하고 있습니다. 그러나 아직 파일을 업로드하지 못했습니다. 이것은 localhost에서 디렉토리를 chmod해야하기 때문입니다.chmod() localhost의 디렉토리

$chmod = chmod ($upload_path & "/" & $_FILES, 777); 

내 스크립트가 죽어 유지, 아무것도 디렉토리에 변화가 없습니다 :

$allowed_filetypes = array('.csv'); 
$max_filesize = 524288; 
$upload_path = '/csvfiles/'; 

$filename = $_FILES['userfile']['name']; 

// Check if we can upload to the specified path, if not DIE and inform the user. 

if(!is_writable($upload_path)){ 
$chmod = chmod ($upload_path & "/" & $_FILES, 777); 

// Upload the file to your specified path. 
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename)){ 
    echo 'Upload succesful'; 
    }else{ 
    echo 'There was an error during the file upload. Please try again. :('; // It failed :(. 
     } 
    } else 
    die ('You cannot upload to the specified directory, please CHMOD the directory.'); 

내가 코드 줄이 할 필요가 무엇인지 확실하지 않다 : 현재 나는 이것을 사용하고 있습니다.

또한 이런 종류의 경험이 있으시면 언제든지 디버그하십시오! : D 당신은 최종 경로를 생성하기 위해 문자열로 $_FILES 배열을 연결하려는

답변

2

사전에

Side note: My OS is RHEL5 

감사합니다,

- 최대는 DED chmod 할 수 그것은 아마도 문제입니다.

$chmod = chmod ($upload_path & "/" & $filename, 777); 

또는

$chmod = chmod ($upload_path & "/" & $_FILES['userfile']['name'], 777); 

그래서 당신이 $upload_path파일 이름을을 추가 : 나는 상황을 제대로 이해한다면, 당신은이를 변경해야합니다.

3

1) 이미 쓰기 가능인지 확인하십시오. 2) 그렇지 않으면 exec()를 사용하여 chmod를 실행하십시오.

if(!is_writable($path)) { 
    exec("chmod -R 777 $path"); 
} 

// code for uploading. 

이 코드는 재귀 함수로 포장하지만 난 당신이 :)

  • 이 정보는 당신을 기반으로 최대 개까지 실제로 디렉토리를 chmod를하는 권한을 갖는 떠나 예를 들어 지금까지 예쁘게 만들 수 있습니다 .
+2

트릭을하는 것처럼 보였습니다. :) – Resitive