2011-10-16 7 views
1

나는 양식을 통해 내 서버에 사용자가 자신의 로컬 컴퓨터에서 선택하는 파일을 업로드하려고하지만 다음과 같은 PHP 오류 얻을 안녕하세요 : 이것은 내 PHP 코드는인 move_uploaded_file PHP 오류

Warning: move_uploaded_file(bqformtest/uploaded_files/test.doc) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/drawapl1/public_html/bqformtest/index.php on line 40

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phphhS4QD' to 'bqformtest/uploaded_files/test.doc' in /home/drawapl1/public_html/bqformtest/index.php on line 40

입니다 :

  $target = "bqformtest/uploaded_files/"; 
     $target = $target . basename($_FILES['upload']['name']) ; 
     if(move_uploaded_file($_FILES['upload']['tmp_name'], $target)) 
     { 
     echo "The file ". basename($_FILES['uploadedfile']['name']). " has been uploaded"; 
     } 
     else { 
     echo "Sorry, there was a problem uploading your file."; 
     } 

이 내 양식 코드 :

<form method='post' action='' accept-charset='UTF-8' enctype='multipart/form-data'> 
<input type="file" name="upload" size="50" /> 
<input id="submitButton" type='submit' name='Submit' value='' /> 
</form> 

uploaded_files 폴더 권한

가 755 감사로 설정 미리.

+0

uploaded_files 디렉토리의 소유자는 무엇입니까? – xdazz

답변

1

이 파일에 대한 전체 경로, 또는 오른쪽으로 상대 경로를 제공

$target = "{fullPath}/fileName"; 

파일의 경로가 나는 오류 메시지에 따라 무엇을 말할 수에서

+1

이 코드 줄의 경로를'$ target = "home/drawapl1/www/bqformtest/uploaded_files /";로 변경하면 같은 오류 메시지가 나타납니다. 나는 그것이 전체 경로라고 생각한다. –

+1

@Ben Paton : 전체 경로는'/'로 시작해야합니다 –

+0

감사합니다 방금 시작했습니다/:) –

0

잘못, 스크립트는 ROOT/bqformtest입니다. 그런 다음 $target을 상대 경로 (bqformtest/uploaded_files)로 설정합니다. 이는 스크립트가 업로드 된 파일을 임시 디렉토리에서 ROOT/bqformtest + bqformtest/uploaded_files으로 이동하려고 시도 함을 의미합니다. ROOT/bqformtest/bqformtest/uploaded_files. 에 $target 설정 :

$target = "uploaded_files/"; 

또는

$target = "/home/drawapl1/public_html/bqformtest/uploaded_files/"; 

하고 작동합니다.

그런데 업로드 된 파일의 이름을 위생적으로 변경하지 않고 사용하면 보안 위험이 커집니다. 사용자가 보낸 어떤 것도 신뢰하지 마십시오.

0

또한 사용자의 디스크 할당량을 확인하십시오. 나는이 문제를 가지고 있었고 많은 시간 동안 시험을 한 후에 나는 그것이 간단하다는 것을 발견했다. 사용자의 할당량이 초과되었습니다

관련 문제