質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.92%

ファイルをアップロードしたい

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 770

Uncaught SyntaxError: Unexpected token { というエラーが出ます。

現在、PHP,jaQueryで写真をアップロードできるウェブアプリを作っております。
写真は、ローカルサーバーにupしようとしています。

発生している問題・エラーメッセージ

しかし、写真をアップロードしても写真がアップされません。
コンソール画面を開くと、
表題のエラーメッセージが表示されました。

「Uncaught SyntaxError: Unexpected token {」

使用言語は PHP HTML CSS jqueryです。

<?php
require_once('data.php');
require_once('photo.php');

//最初に受け取るパラメーターや使用する変数を記述しておきましょう。
session_start();
$img = "";

//FileUpLoad処理
if(!isset($_FIlES['upload']['error']) ||
!is_int($_FILES['upfile']['error']) ||
!isset($_POST["file_upload_flg"]) ||
$_POST["file_upload_flg"]!="1") {
  //echo 'パラメータが不正です';
} else {
  $username = $_POST["username"];
  $viewname = $_POST["viewname"];
  $place = $_POST["place"];
  $comment = $_POST["comment"];
  $file_name = $_FILES["upfile"]["name"];//".jpg"ファイル名を取得
  $extension = pathinfo($file_name, PATHINFO_EXTENSION);//拡張子取得
  $tmp_path = $_FILES["upfile"]["tmp_name"];
  //アップロード先のTemp名作成
  $uniq_name = date("YmdHis").session_id() . "." . $extension; //ユニークファイル名作成

  //FileUpLoad [--Start--]
  if( is_uploaded_file( $tmp_path ) ) {
    if(move_uploaded_file($tmp_path,"upload_photo/".$uniq_name)) {
      chmod( "upload_photo/".$uniq_name, 0644);
      echo $uniq_name."をアップロードしました。";
      $img = '<img src="upload_photo/'.$uniq_name.'" >';

      //1.接続します
      $pdo = new PDO('mysql:dbname=view;host=localhost','root','パスワード');
      //2.DB文字コード指定
      $stmt = $pdo->query('SET NAMES utf8');
      //3.データ登録SQL作成
      $stmt = $pdo->prepare("INSERT INTO photoalbum (id, username,viewname,place,img,comment,date)VALUES(NULL,:username,:viewname,:place,:img,:comment,sysdate())");
      $stme->bindValue(':username', $username);
      $stme->bindValue(':viewname', $viewname);
      $stme->bindValue(':place', $place);
      $stme->bindValue(':img'," upload_photo/".$uniq_name);
      $stme->bindValue(':comment', $comment);
      $status = $stmt->execute();
      if($status==false){
        echo "SQLエラー";
        exit;
      }else{
        echo "登録完了!";
      }

    } else {
      echo "Error:アップロードできませんでした。";
    }
  }
  // FileUpLoad[--End--]

}
 ?>
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>best view</title>
    <link rel="stylesheet" type="text/css" href="reset.css">
    <link rel="stylesheet" type="text/css" href="stylesheet.css">
    <link href="css/bootstrap.min.css" rel="stylesheet">
  </head>
  <body>
  <h1>BEST VIEW</h1>

  <section class="container-fluid">
      <p><a href="#" id="select_btn" class="btn btn-primary btn-lg">カメラ/写真選択</a></p>
      <form method="post" action="photo_input.php" enctype="multipart/form-data" id="send_file">
        <p>景色の種類を選択してください!</p>
          <select id="viewname" name="viewname">
            <?php foreach($photos as $photo): ?>
              <option><?php echo $photo->getPhotoname() ?></option>
            <?php endforeach ?>
          </select>
          <input type="file" accept="image/*" capture="camera" id="image_file" value="" name="upfile" style="opacity:0;">
         <p>ユーザー名を入力してください</p>
            <input type="text" id="username" name="username">
          <p>場所の名前を入力してください</p>
            <input type="text" id="place" name="place">
          <p>写真の感想をお書きください!</p>
            <textarea id="comment" name="comment"></textarea>
            <input type="hidden" name="file_upload_flg" value="1">
          <p><a href="#" id="upload_btn" class="btn btn-success btn-lg">Fileアップロード</a></p>
      </form>
    </section>
  <a href="index.php">← TOP</a>

  <footer id="contact">
      <h3>CONTACT</h3>
      <ul>
          <li><a href="#"></a>プライバシーポリシー</li>
          <li><a href="#"></a>サイトご利用方法</li>
          <li><a href="#"></a>免責事項</li>
          <li><a href="#"></a>アクセス</li>
          <li><a href="#"></a>お問い合わせ</li>
      </ul>
      <p id="copyright">©︎2017 schoo Inc. AA Rights Reserved.</p>
  </footer>

  <!-- Javascript -->
  <script src="js/jquery-2.1.3.min.js"></script>
  <script src="js/bootstrap.min.js"></script>
  <script>
  //非表示のinput type="file"をクリック
  $("#select_btn").on("click", function(){
     $("#image_file").trigger("click");
  });

  //File選択したら”Fileアップロード”ボタンを表示
  $("#image_file").on("change",function(){
    $("#upload_btn").show();
  });

  //アップロードボタン ”Submit”で送信
  $("#upload_btn").on("click", function(){
     $("#send_file").submit();
  });

  </script>
  </body>
</html>

試したこと

エラーの内容から、構文が間違っているのかはわかり、"{"が余分にもしくは足りないなどではないかと予想しています。しかし、該当箇所がわかりません。 

補足情報(言語/FW/ツール等のバージョンなど)

jquery
Bootstrap : bootswatch v3.3.4+1

開発環境 XAMPP : 5.6.30-0

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • s8_chu

    2017/05/19 21:14 編集

    もしコードを省略しているならば省略せずにコードを追記していただけませんか?

    キャンセル

  • anntyan19910603

    2017/05/19 21:35

    質問内容を修正しました。PHPの記述を追加しました。よろしくお願いいたします。

    キャンセル

回答 1

checkベストアンサー

+1

おそらくエラーがでている行が表示されると思いますので
そこに該当する行の前後をよくチェックしてみて下さい

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る