2014-10-22 5 views
1

저는 PHP를 처음 사용하며 업로드 스크립트를 작성하려고합니다. 그러나 완전히 작동하지는 않습니다.PHP에서 파일 업로드가 작동하지 않습니다.

작동하지 않는 점은 사진을 업로드 할 때 사진이 "업로드"폴더에 저장되지 않는다는 것입니다. (폴더 위치 : Applications> MAMP> htdocs> Marjolein)

또한 브라우저에 업로드 된 사진을 보여주고 싶지만 이것도 작동하지 않습니다.

저는 Mac으로 작업하고 MAMP를 사용하여 PHP 코드를 실행합니다. 브라우저에서 그림을 보여줄 수 있고 "업로드"폴더에 저장 될 수 있도록 도와 주시겠습니까?

내가 가진 코드는 다음과 같습니다

Upload: 0_8caab_996cc75d_orig.jpg 
Type: image/jpeg 
Size: 538.166992188 kB 
Temp file: /Applications/MAMP/tmp/php/phptpCA8B 
Stored in: ://Applications/MAMP/htdocs/Marjolein/uploads/0_8caab_996cc75d_orig.jpg 
:

<html> 
<body> 

<form action="uploader.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> 

</body> 
</html> 

에서는 WebBrowser 내가 제출 버튼을 클릭 한 후 표시 uploadform.html

<style> 
.sucess{ 
    color:#088A08; 
} 
.error{ 
    color:red; 
} 
</style> 

<?php 
    $file_exts = array("jpg", "bmp", "jpeg", "gif", "png"); 
    $upload_exts = end(explode(".", $_FILES["file"]["name"])); 
    if ((($_FILES["file"]["type"] == "image/gif") 
      || ($_FILES["file"]["type"] == "image/jpeg") 
      || ($_FILES["file"]["type"] == "image/png") 
      || ($_FILES["file"]["type"] == "image/pjpeg")) 
      && ($_FILES["file"]["size"] < 2000000) 
      && in_array($upload_exts, $file_exts)) 
    { 
     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>"; 
      // Enter your path to upload file here 
      if (file_exists("://Applications/MAMP/htdocs/Marjolein/uploads/" . 
      $_FILES["file"]["name"])) 
      { 
       echo "<div class='error'>"."(".$_FILES["file"]["name"].")". 
       " already exists. "."</div>"; 
      } 
      else 
      { 
       move_uploaded_file($_FILES["file"]["tmp_name"], 
       "://Applications/MAMP/htdocs/Marjolein/uploads/" . $_FILES["file"]["name"]); 
       echo "<div class='sucess'>"."Stored in: " . 
       "://Applications/MAMP/htdocs/Marjolein/uploads/" . $_FILES["file"]["name"]."</div>"; 
      } 
     } 
    } 
    else 
    { 
    echo "<div class='error'>Invalid file</div>"; 
    } 

?> 

<?php 
    if(isset($_REQUEST['show_image']) and $_REQUEST['show_image']!='') 
    { 
?> 
     <p><img src="uploads/<?php echo $_REQUEST['show_image'];?>" /></p> 
<?php 
    } 
?> 

uploader.php
+0

확인하는 웹 서버가 "uploads /"디렉토리에 쓸 수있는 권한을 가지고 있습니다. – Dinistro

답변

0

에코 시도 업로드 후 그는 이미지 : 여기

echo '<img src="://Applications/MAMP/htdocs/Marjolein/uploads/" . $_FILES["file"]["name"]" border=0>'; 

장소를 (안되 이미지의 저장에 대해 알고) :

else 
{ 
move_uploaded_file($_FILES["file"]["tmp_name"], 
"://Applications/MAMP/htdocs/Marjolein/uploads/" . $_FILES["file"]["name"]); 
echo "<div class='sucess'>"."Stored in: " . 
"://Applications/MAMP/htdocs/Marjolein/uploads/" . $_FILES["file"]["name"]."</div>"; 
echo '<img src="://Applications/MAMP/htdocs/Marjolein/uploads/" . $_FILES["file"]["name"]" border=0>'; 
} 

은 아마 파일의 경로가 올바르지 않습니다. 난 당신이 대신 이전 경로의이 시도 할 수 있다고 생각 :
move_uploaded_file($_FILES["file"]["tmp_name"], 
"../uploads/" . $_FILES["file"]["name"]); 

또는

uploader.php 당신이 사용할 수있는 폴더 "업로드"이 같은에에있는 경우 :

move_uploaded_file($_FILES["file"]["tmp_name"], 
"uploads/" . $_FILES["file"]["name"]); 
+1

고마워요! 그것은 지금 일한다!! :디 – Marjolein

관련 문제