2011-08-03 3 views
0

나는 사용자가 버튼을 '업로드'클릭시 사용자의 computer.code이

//index.php 
<html> 
    <body> 
     <form enctype="multipart/form-data" action="http://localhost/uploader/upload.php" method="POST"> 
      <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> 
      Please choose a photo: 
      <input name="photo" type="file"><br/><br/> 
      Say something about this photo: 
      <input name="message" type="text" value=""><br/><br/> 
      <input type="submit" value="Upload"/><br/> 
     </form> 
    </body> 
</html> 

노호 주어진 이미지를 선택하고 HTML 파일을 가지고, 사용자는 파일을 uploader.php로 리디렉션됩니다. upload.php의 코드는 다음과 같습니다.

<?php 
//upload.php 
if(isset($_FILES['photo']) && isset($_POST['message'])){ 

    $uploadfile = './uploads/'.basename($_FILES['photo']['name']); 

    $iStats=getimagesize($_FILES['photo']['tmp_name']); 

    if (isset($iStats['mime']) && $iStats[0]>0) { 
     move_uploaded_file($_FILES['photo']['tmp_name'], $uploadfile); 
     include_once 'fbmain.php'; 
     try{ 
      $uid = $facebook->getUser(); 
      $me = $facebook->api('/me'); 
      $token = $session['access_token'];//here I get the token from the $session array 
      $album_id = '2179901265385';//MY ALBUM ID 
      $facebook->setFileUploadSupport(true); 
      $args = array('message' => $_POST['message']); 
      $args['image'] = '@' . realpath($uploadfile); 

      $data = $facebook->api('/'. $album_id . '/photos?access_token='. $token, 'post', $args); 

     } catch(FacebookApiException $e){ 
      echo "Error:" .$e; 
     } 
     unlink($uploadfile); 
     echo "Success!\n"; 
    } else { 
     echo "Wrong file type!\n"; 
    } 
} 

?> 

동일한 폴더에 'uploads'라는 폴더가 만들어졌습니다. 사용자가 파일을 업로드 할 때 먼저 '업로드'폴더에 업로드 한 다음 페이스 북에 업로드했습니다.
이것은 로컬 호스트에서 잘 작동합니다. 하지만 그것은 서버에있을 때 작동하지 않습니다. 그것은 내가 '잘못된 파일 형식!' 메시지. 참고 : 내 서버에 '업로드'폴더에 대한 쓰기 권한이 있습니다.
'$ _FILES'의 값을 인쇄하려고했습니다.

print_r($_FILES); 

그것은 나에게이 출력을 제공

Array ([photo] => Array ([name] => TEST IMAGE.jpg [type] => [tmp_name] => [error] => 2 [size] => 0)) 

사람이 나를 좀 도와 드릴까요? 서버에서 스크립트에 지시하는 "//localhost/uploader/upload.php HTTP"

+1

에 ... 파일이 너무 큰 의미? – Mob

+0

'tmp_name'은 비어 있습니다. PHP가/tmp 디렉토리 (또는 임시 파일을 쓰도록 설정 한 곳)에 파일을 쓸 수있는 권한이 있는지 확인해야합니다. – Andris

+0

설정 파일에서'safe_mode' 상태를 확인해보십시오 . – sonnb

답변

4

오류 2 내가 양식 동작을 변경 희망 MAX_FILE_SIZE 바이트

+0

맞습니다. 고맙습니다. 방금 MAX_FILE_SIZE을 (를) 더 높은 값으로 변경했습니다. 이제 효과가있다. – Roshanck

관련 문제