独自のいいねボタンをajaxを使って実装しようと思っています。

jQueryとPHPを使っています。

ただ、flock()のところでエラーが表示されボタンを押してもうまく実行できません。

//clickCount.js
$(function(){

     $('.letsVote').on('click' , function(){

          $this = $(this);
          var id = $this.data("id"); //識別用ID(重複NG)
          var numHtml = "." + $this.data("numhtml"); //カウント数を表示するHTML
          var nowCount = Number($(numHtml).html()); //現在のカウント数
          var newCount = nowCount + 1;

          $.ajax({
               type : "POST",
               url : "vote.php",
               data: {
                    "file_id" : id,
                    "count" : newCount
               }
          }).done(function(data , datatype){
                    //送信先のvote.phpから、Completeが返ってきたらカウント更新
                    if(data == "Complete"){
                         $(numHtml).html(newCount);
                    }else{
                         console.log(data);
                    }
               }).fail(function(XMLHttpRequest, textStatus, errorThrown) {
                      $("#XMLHttpRequest").html("XMLHttpRequest : " + XMLHttpRequest.status);
                      $("#textStatus").html("textStatus : " + textStatus);
                      $("#errorThrown").html("errorThrown : " + errorThrown.message);
                  });
    });
});

上記の記述がjQueryのファイルです。
続いて、

    <?php 
//vote.php

//////ajaxデータを受信1
$file_id = $_POST["file_id"]; //ファイル名
$count = $_POST["count"]; //投票数
$cookieName = "vote_" . $file_id; //クッキー名。
$cookieTime = time() + 10; //クッキーの有効期限(投票を制限する秒数)

///////クッキーが有効
if(isset($_COOKIE[$cookieName])){
     echo "クッキー制御により投票不可です。";

}else{
///////クッキーが無効=カウントアップ
     $count = $_POST["count"]; //投票数

     //カウント数を書き出すファイル名
     $fileName = "log/" . $file_id . ".count";

     $fp = @fopen($fileName , "w"); //書き込みモードで開く

     flock($fp , LOCK_EX); //排他的ロック(書く準備) 他のロックをすべてブロック
     fputs($fp , $count); //カウント数を書き込み
     flock($fp , LOCK_UN); //ロック開放
     fclose($fp);

     setcookie($cookieName , $count , $cookieTime); //10秒有効のクッキーをセット

     echo "Complete"; //clickCount.jsにはここの値を返す
}
?>

上記の記述は、ajaxを使って投票数を取得しているphpファイルです。

これでclass名が.letVoteというボタンをクリックすると、

    <br />
<b>Warning</b>:  flock() expects parameter 1 to be resource, boolean given in <b>/Applications/XAMPP/xamppfiles/htdocs/vote/vote.php</b> on line <b>23</b><br />
<br />
<b>Warning</b>:  fputs() expects parameter 1 to be resource, boolean given in <b>/Applications/XAMPP/xamppfiles/htdocs/vote/vote.php</b> on line <b>24</b><br />
<br />
<b>Warning</b>:  flock() expects parameter 1 to be resource, boolean given in <b>/Applications/XAMPP/xamppfiles/htdocs/vote/vote.php</b> on line <b>25</b><br />
<br />
<b>Warning</b>:  fclose() expects parameter 1 to be resource, boolean given in <b>/Applications/XAMPP/xamppfiles/htdocs/vote/vote.php</b> on line <b>26</b><br />
Complete

と表示されます。

正直どこをどう書き換えたら良いか分からず困っています。
よろしくお願いします。