2011-08-03 91 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'的folde。 當用戶上傳文件時,首先上傳到「上傳」文件夾,然後上傳到Facebook。
這個工作在localhost中很好。但它在服務器中不起作用。它給我'錯誤的文件類型!'信息。請注意,我在我的服務器上有'上傳'文件夾的寫入權限。
我試圖打印'$ _FILES'的值。

print_r($_FILES); 

它給了我這個輸出

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

誰能幫我這個好嗎?

+1

我希望你改變形式行動「HTTP://localhost/uploader/upload.php」直接在服務器上的腳本? – Mob

+0

'tmp_name'是空的,因此您可能應該檢查PHP是否有權將文件寫入/ tmp目錄(或將其配置爲寫入臨時文件的位置) – Andris

+0

也請考慮檢查配置文件中的'safe_mode'狀態。 – sonnb

回答

4

錯誤2意味着文件太大... MAX_FILE_SIZE是以字節爲單位

+0

是的,這是正確的。謝謝。我只是將MAX_FILE_SIZE更改爲更高的值。現在它可以工作 – Roshanck