2014-04-01 2 views
0

사용자가 내가 만든 웹 사이트의 프로필 사진을 변경할 수 있도록하는 스크립트를 만들려고합니다. 여기false를 반환하는 파일 업로드 스크립트

 <form action="upload_prof_pic.php" method="POST" enctype="multipart/form-data"> 
      <input type="file" class="btn btn-default" name="file" id="file" /><br /><br /> 
      <input type="submit" class="btn btn-default" value="Upload Profile Picture" /> 
     </form> 

upload_prof_pic.php의 PHP 코드입니다 : 그것은 항상 실행

<?php 
session_start(); 
require("includes/connect.php"); 

$results = $db->query("SELECT * FROM users WHERE username='".$_SESSION["logged_in"]."'"); 
$rows = $results->fetch(); 

$allowedExts = array("gif", "jpeg", "jpg", "png"); 
$temp = explode(".", $_FILES["file"]["name"]); 
$extension = end($temp); 
if (
    (
     ($_FILES["file"]["type"] == "image/gif") 
    || ($_FILES["file"]["type"] == "image/jpeg") 
    || ($_FILES["file"]["type"] == "image/jpg") 
    || ($_FILES["file"]["type"] == "image/pjpeg") 
    || ($_FILES["file"]["type"] == "image/x-png") 
    || ($_FILES["file"]["type"] == "image/png") 
    ) 
    && ($_FILES["file"]["size"] < 20000) 
    && in_array($extension, $allowedExts) 
) { 
    if ($_FILES["file"]["error"] > 0) { 
     //error: uploading 
     header("Location: account.php?err=upload"); 
    } else { 
     //success 
     move_uploaded_file($_FILES["file"]["tmp_name"], 
      "prof_pic/users/".$rows["username"]."/" . $_FILES["file"]["name"]); 
     $db->query("UPDATE users SET prof_pic='".$_FILES['file']['name']."' WHERE username='".$_SESSION["logged_in"]."'"); 
     header("Location: account.php"); 
    } 
} else { 
    //error: invalid file 
    header("Location: account.php?err=invalid"); 
} 

?> 

'// 오류 : 잘못된 파일'스크립트의 일부는 여기에 양식에 대한 HTML 코드입니다. 누구든지 도와 줄 수 있습니까? 그것은 한 번 일한 다음 '// success'부분에서 뭔가를 바 꾸었습니다. 이것은 아무런 효과가 없었어야했지만 분명히 그랬습니다.

+2

는 단순히 검사 중 하나가 실패 넣어. 왜'if' 문 앞에서'var_dump ($ _ FILES [ 'file'] [ 'type'], $ _FILES [ 'file'] [ 'size'], $ extension); exit;' – Phil

+1

또는 그냥'print_r ($ _ FILES);'전체를 많이 얻으십시오 –

+0

@Phil 고맙습니다! 내 사이즈를 너무 낮게 책정 했어. 나는 그것을 더 높게 설정하고 작동한다. –

답변

0

나는 자바 스크립트 코딩을 사용하여 다음과 같은 오류가 발생했습니다.

<script type="text/javascript" src="js/jquery-func.js"></script> 
<SCRIPT type="text/javascript"> 
    function ValidateFileUpload() { 
     var fuData = document.getElementById('filename'); 
     var FileUploadPath = fuData.value; 

//To check if user upload any file 
     if (FileUploadPath == '') { 
      alert("Please upload an image"); 

     } else { 
      var Extension = FileUploadPath.substring(
        FileUploadPath.lastIndexOf('.') + 1).toLowerCase(); 

//The file uploaded is an image 

if (Extension == "gif" || Extension == "png" || Extension == "bmp" 
        || Extension == "jpeg" || Extension == "jpg") 

      { 


      <?php 
move_uploaded_file($_FILES["file"]["tmp_name"], 
      "prof_pic/users/".$rows["username"]."/" . $_FILES["file"]["name"]); 
     $db->query("UPDATE users SET prof_pic='".$_FILES['file']['name']."' WHERE username='".$_SESSION["logged_in"]."'"); 
     header("Location: account.php"); 
?> 
      } 

//The file upload is NOT an image 
else { 
       alert("Photo only allows file types of GIF, PNG, JPG, JPEG and BMP. "); 

      } 
     } 
    } 

HTML 부분

<input onchange="ValidateFileUpload(this);" type="file" name="file" id="filename"/> 
관련 문제