2011-02-28 6 views
0

나는 양식이 코드를 사용하여 비디오 파일을 업로드하지 못할 :이 파일 업로드에 문제가 있습니까?

<form action="upload.php" method="post" 
enctype="multipart/form-data"> 
<label for="file">Filename:</label> 
<input type="file" name="file" id="file" /> 
<br /> 
<input type="submit" name="submit" value="Submit" /> 
</form> 

이것은 upload.php로이다 :

<?php 
if ($_FILES["file"]["size"] < 2000000000) 
    { 
    if ($_FILES["file"]["error"] > 0) 
    { 
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; 
    } 
    else 
    { 
    echo "Upload: " . $_FILES["file"]["name"] . "<br />"; 
    echo "Type: " . $_FILES["file"]["type"] . "<br />"; 
    echo "Size: " . ($_FILES["file"]["size"]/1024) . " Kb<br />"; 
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; 

    if (file_exists("videos/" . $_FILES["file"]["name"])) 
     { 
     echo $_FILES["file"]["name"] . " already exists. "; 
     } 
    else 
     { 
     move_uploaded_file($_FILES["file"]["tmp_name"], 
     "videos/" . $_FILES["file"]["name"]); 
     echo "Stored in: " . "videos/" . $_FILES["file"]["name"]; 
     } 
    } 
    } 
else 
    { 
    echo "Invalid file"; 
    } 
?> 
+3

* "캔트"*를 명확히하십시오. 오류가 있습니까? 디버깅을 시도 했습니까? – deceze

+0

또한 서버에 대한 루트 액세스 권한이 있습니까? – HyderA

답변

0

질문이 명확하지 않습니다하지만 당신은 다음 사항을 확인할 수 있지만 :

1) PHP가 tempdirectory에 쓸 수 있습니까?

이것은 PHP가 파일을 수신 할 때 파일을 저장하는 곳입니다. 스크립트가 끝나면 이 파괴되므로 스크립트가 끝나기 전에 으로 이동해야합니다.

2) PHP가 targetdirectory에 쓸 수 있습니까?

PHP는 targetdirectory에 대한 쓰기 권한이 있습니까?

도 확인 php.ini입니다. 특히 php_value upload_max_filesize 20M이 업로드 한 파일 크기를 충족하는지 확인하십시오.

+0

디렉토리에 쓸 수 없었습니다. – Mike

+0

기쁜 데요, 당신을 환호합니다. – enam

2

두 번째 생각에서는에 대해 더 나은 해결책은 PHP에 두 개의 복사본을 시스템에 설치하는 것입니다. 하나는 이러한 업로드를 처리하는 것입니다. 이렇게하면 주 서버에 악영향을 미치지 않고 이러한 불합리한 php.ini 값을 설정할 수 있습니다. 아마도 두 번째 웹 서버가 필요하지 않을 것입니다. CLI로 실행하여이 인수를 보조 PHP 설치에 전달할 수있는 방법이 있다고 생각합니다.

이것은 사용자의 필요에 따라 너무 복잡하지만 다른 사람에게 도움이 될 수 있습니다. 또한이 접근법에 대한 피드백을보고 싶습니다.


이러한 한계를 증가 시키면 서버를 충돌하고 공격을 많이하는 서버가 취약 메모리 누수가 발생할 수

post_max_size = 2100M 
upload_max_filesize = 2100M 
file_uploads = 1 
memory_limit = 2200M 

php.ini의

이러한 매개 변수를 변경 명심해야합니다.

+0

이것은 PHP 업로드에서 가장 일반적인 문제입니다. – nkcmr

+1

웹 서버 구성 (예 : Apache, IIS)에서 최대 게시물 크기를 늘리는 것을 잊지 마십시오. –

관련 문제