2011-08-03 6 views
0

ユーザーがボタンを「アップロード」をクリックするとき、ユーザーのcomputer.codeから画像を選択したHTMLファイルが

//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> 

怒鳴る与えられた私は、ユーザーがファイルを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」というフォールドを作成しました。 ユーザーが最初にアップロードしたファイルをアップロードし、次にFacebookにアップロードしたとき。
これはlocalhostでうまく動作します。しかし、それがserver.Itにあるときに私は '間違ったファイルの種類を与える!'メッセージ。私のサーバーには「アップロード」フォルダの書き込み権限があります。
'$ _FILES'の値を印刷しようとしました。

print_r($_FILES); 

それは私にこの出力を与える

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

誰もこれで私を助けてくださいことはできますか?サーバー上のスクリプトに指示する:

+1

のですか? – Mob

+0

'tmp_name'は空ですので、PHPが/ tmpディレクトリにファイルを書き込む権利を持っているかどうかを確認する必要があります(または一時ファイルを書き込むように設定されている場所) – Andris

+0

設定ファイルで' safe_mode'ステータスをチェックすることを検討してください。 – sonnb

答えて

4

エラー2は、ファイルが大きすぎること... MAX_FILE_SIZEは、私はあなたがフォームアクション「//localhost/uploader/upload.phpのhttp」に変更を望むバイトに

+0

はい、正しいです。ありがとうございます。 MAX_FILE_SIZEをより高い値に変更しました。今それは動作します – Roshanck

関連する問題