2012-04-01 2 views
0
<? 
if(isset($_POST['submit'])){ 

$url = 'http://www.connectedcampus.org/ckeditor/images/uploads/'; 

if (($_FILES['upload'] == "none") OR (empty($_FILES['upload']['name']))) 
{ 
    $message = "No file uploaded."; 
} 
else if ($_FILES['upload']["size"] == 0) 
{ 
    $message = "The file is of zero length."; 
} 
else if (($_FILES['upload']["type"] != "image/pjpeg") AND ($_FILES['upload']["type"] != "image/jpeg") AND ($_FILES['upload']["type"] != "image/png")) 
{ 
    $message = "The image must be in either JPG or PNG format. Please upload a JPG or PNG instead."; 
} 
else if($_FILES["file"]["size"] > 1000000){ 
    $message = "File size too big!"; 
} 
else if(file_exists($url.$_FILES["file"]["name"])) 
    { 
    $message=$_FILES["file"]["name"] . " already exists. "; 
    } 
else if (!is_uploaded_file($_FILES['upload']["tmp_name"])) 
{ 
    $message = "Invalid File!"; 
} 
else { 
    $message = "success!"; 
    $move = move_uploaded_file($_FILES['upload']['tmp_name'], $url.$_FILES['upload']['name']); 
    echo $_FILES['upload']['tmp_name']."<br>"; 
    echo $url.$_FILES['upload']['name']; 
    if(!$move) 
    { 
    $message = "Error moving uploaded file."; 
    } 
    $url = $url.$_FILES['upload']['name']; 
} 
echo $message; 
</script>"; 
} 
?> 

이 인쇄 ']) 은 false를 반환합니다. 하지만 나는 500 % 확실하게 http://www.connectedcampus.org/ckeditor/images/uploads/ 폴더를 만들었습니다 .... 그럼 왜 오류가 있습니까? ,PHP 이미지 업로드 이상한 문제

확인 지금 변경 :

$url = 'bloguploads/'; 

    if (($_FILES['upload'] == "none") OR (empty($_FILES['upload']['name']))) 
    { 
     $message = "No file uploaded."; 
    } 
    else if ($_FILES['upload']["size"] == 0) 
    { 
     $message = "The file is of zero length."; 
    } 
    else if (($_FILES['upload']["type"] != "image/pjpeg") AND ($_FILES['upload']["type"] != "image/jpeg") AND ($_FILES['upload']["type"] != "image/png")) 
    { 
     $message = "The image must be in either JPG or PNG format. Please upload a JPG or PNG instead."; 
    } 
else if($_FILES["file"]["size"] > 1000000){ 
     $message = "File size too big!"; 
} 
else if(file_exists($url.$_FILES["file"]["name"])) 
    { 
     $message=$_FILES["file"]["name"] . " already exists. "; 
    } 
    else if (!is_uploaded_file($_FILES['upload']["tmp_name"])) 
    { 
     $message = "Invalid File!"; 
    } 
    else { 
     $message = ""; 
     $move = move_uploaded_file($_FILES['upload']['tmp_name'], $url.$_FILES['upload']['name']); 
     if(!$move) 
     { 
      $message = "Error moving uploaded file."; 
     } 
     $url = $url.$_FILES['upload']['name']; 
     } 
echo $message; 
</script>"; 
?> 

이제 일이 그것 "이미 존재"라는 것이다. 왜? FTP 클라이언트를 통해 파일이 업로드되지 않았 음을 알 수 있습니다.

+2

읽기/쓰기 권한 어쩌면? – hjpotter92

+0

@ hjpotter92 chmod ($ _ FILES [ 'upload'] [ 'tmp_name'], 777); $ message = "성공!"; $ _ FILES [ '업로드'] [ '이름']); & uploads 폴더의 권한을 변경했습니다 ... 아무것도 작동하지 않습니다. –

+0

"Filename.jpg가 이미 존재합니다"가 아니라 "이미 존재합니다"라는 사실은 힌트 여야합니다 ... –

답변

1

move_uploaded_file은 URL이 아닌 파일 시스템에서 작동합니다.

move_uploaded_file($_FILES['upload']['tmp_name'], $url.$_FILES['upload']['name']); 

사용하는 파일 시스템 경로에

대신 $url, 즉 :

move_uploaded_file($_FILES['upload']['tmp_name'], "/home/www/uploads/".$_FILES['upload']['name']); 
+0

$ url = '/ ckeditor/images/uploads/'; 에 오류 업로드 파일이 계속 표시됩니다! : -/ –

+0

상대 경로를 사용하려는 경우 처음부터'/'를 제거하십시오. 그러나 더 좋은 아이디어는 시간을 투자하고 절대/상대 경로, 현재 작업 디렉토리 및 PHP에서 어떻게 처리 할 것인지를 배우는 것입니다. –

+0

위 질문에서 편집하십시오. 나는 그 길을 바로 잡았다. 매우 이상하게 "이미 존재합니다"라고 말합니다 –