2012-03-28 2 views
1

이 코드를 다시 작동 시키려고합니다. 내가 액세스하려고하는 파일 이름조차 에코를 만들지 않은 것을 만들었습니다. 도와주세요, 나는 아무 소용이 함께 이미 시간 이상 동안보고 있었어요 :( 참고 : 나는 심지어 여기에 $의 이름을 표시하지 수파일 업로드 PHP 구문 오류

당신은에 mutlipart 양식 데이터를 사용할 필요가
<?php 
    error_reporting(0); 
    if($_POST['submit']){ 
     //file uploading 
     $name = basename($_FILES['upload']['name']); //name plus extention 
     print_r($_FILES['upload']); 
     $t_name = $_FILES['upload']['tmp_name']; 
     $dir = 'gallery_i'; 
     $thumbs = 'gallery_t'; 

     if(move_uploaded_file($t_name,$dir.'/'.$name)){ 
      $resizeObj = new resize($dir.'/'.$name);//Resize image (options: exact, portrait, landscape, auto, crop) 
      $resizeObj -> resizeImage(200, 200, 'auto'); //Save image 
      $resizeObj -> saveImage($thumbs.'/'.$name, 100); 
      echo 'file upload nicely'; 
      //file upload successfull   
     }   
} 
?> 


<div class='home'> 
    <form method='post' action='other.php'> 
     Name: <input class='reg' type='text' name='prodname'/><br/><br/> 
     Description:<br/> <textarea class='reg' name='description' rows="4" cols="40">    </textarea> <br/><br/> 
     <input type='file' name='upload' /> 
     <input type='submit' value='submit' name='submit'/> 
    </form> 
</div> 
+0

출력은 무엇입니까? – Alp

+0

이 페이지는'other.php'입니까? – mellamokb

+0

파일을 이동하려는 디렉토리의 파일 권한을 확인 했습니까? –

답변

7

파일을 업로드 :

설정 양식 속성 : enctype="multipart/form-data"

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2

여기

간단한 튜토리얼 : http://www.w3schools.com/php/php_file_upload.asp

+1

어쩌면 초보자들에게도 유용 할 수 있습니다. 또한 World Wide Web 컨소시엄에서 더 자세한 스펙에 대한 링크를 올렸습니다. 더 자세히 읽고 싶다;) –

+1

@benedict_w : 동의했다. w3schools는 프로그래밍 리소스의 WikiPedia와 같습니다. 그것은 일어나고가는 일을하지만, 결국에는 세부 사항을 파고 들거나 기술적 인 문제가 발생할 때 더 나은 리소스가 필요합니다. 솔직히, 나는 w3schools 모든 것들의 SO에 대한 독단적 인 거절이 어리석은 것이라고 생각합니다. 그것은 유용한 목적의 IMO를 가지고 있습니다. – mellamokb

+0

@mellamokb : +1. 나는 w3schools에 연결하지 않는다, 나는 그들이 쓴 것을 링크시킨다. w3schools가 채워져 있다고 말하지 말고, 내가 특별히 연결 한 것을 잘못 생각해주세요. 그것은 회원 중 일부가 증오이기 때문에 전체 국가를 싫어하는 것과 같습니다. 인종 차별이 어떻게 작용하는지 정확히 ... – Stefan

1

echomove_uploaded_file($t_name,$dir.'/'.$name)이 true를 반환하는 경우에만 실행됩니다. 귀하의 경우, 그것은 거짓을 반환합니다.

당신은

  • 파일이 존재하는지 확인해야합니다 (file_exists($t_name))
  • 읽을 수 (is_readable($t_name))
  • 대상 디렉토리 쓰기 (is_writable($dir))
  • 같은 이름의 파일이 이미 있습니다 있음 (!is_file($dir . '/' . $name))

그 조건이 맞으면 move_uploaded_file가 성공적으로 완료됩니다.

benedict_w에서 설명한대로 enctype 값을 multipart/form-data으로 추가하려면 HTML 양식을 수정해야합니다.

0

PHP의 오류보고/표시 옵션을 켭니다. develping/debugging 동안 그것들과 함께 달리기는 눈가리개를 착용하면서 자정에 절벽 쪽에서 마라톤을 달리게하는 것과 같습니다. php.ini 파일에서

는 :

display_errors: 1 
error_reporting: E_ALL 

뿐만 아니라, 스크립트가 작동하지 않습니다. 파일 업로드가 성공할 경우에도

<form method="post" action="other.php" enctype="multipart/form-data"> 
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^--- missing 

을 지정해야하며 업로드가 성공했다고 가정합니다. 최소한 다음을 가져야합니다.

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    if ($_FILES['upload']['error'] === UPLOAD_ERR_OK) { 
     .... your file handling code 
    } else { 
     die("Upload failed with error code " . $_FILES['upload']['error']); 
    } 
}