前提・実現したいこと
DBに画像ファイルをアップロードして表示するシステムを作っています。
DBに画像をアップロードする段階で2件目以降のアップロードができない状態です。
発生している問題・エラーメッセージ
現在、画像アップロードフォームからアップロードを行うと、テーブル内が0件の時のみ正常に動作し、2件目以降を同じ手順でアップロードを行ったところエラーがなくDBにも追加されない状態です。
該当のソースコード
fileup
1<h1>画像アップロード</h1> 2<form method="post" enctype="multipart/form-data" action="upload_execute.php"> 3 4 <li> 5 <input type="file" name="upload" accept=".png, .jpg, .jpeg, .pdf" > 6 <input type="hidden" name="file_category" value="1"> 7 備考 8 <textarea name="other" class="textarea"></textarea> 9 </li> 10 11 <input type="submit" value="アップロード" class="button"> 12</form>
uploadexecute
1<?php 2session_start(); 3header('X-XSS-Protection: 0'); 4$time = date("Y/m/d"); 5$company_ID = $_SESSION['company_ID']; 6$other = $_POST['other']; 7$timestamp = date("YmdHis"); 8$file_category = $_POST['file_category']; 9 10if($_SESSION['company_ID'] == ""){?> 11<SCRIPT LANGUAGE="JavaScript"> 12 location.href = "../../index_timeout.php?<?php echo $time;?>"; 13</SCRIPT> 14<?php 15exit(); 16} 17 18if($file_category == 1){ 19 $category = pathinfo($_FILES['upload']['name'], PATHINFO_EXTENSION); 20 $category = strtolower($category); 21 if($category=="png"){ 22 $category = "1"; 23 }elseif($category=="jpeg"){ 24 $category = "2"; 25 }elseif($category=="jpg"){ 26 $category = "3"; 27 }elseif($category=="pdf"){ 28 $category = "4"; 29 } 30 ?> 31 32 33 <?php 34 $tempfile = $_FILES['upload']['tmp_name']; 35 $filename = '../../file/'.$company_ID.$category.$timestamp.".".pathinfo($_FILES['upload']['name'], PATHINFO_EXTENSION); 36 37 if (is_uploaded_file($tempfile)) { 38 if ( move_uploaded_file($tempfile , $filename )) { 39 } else { 40 } 41 } else { 42 } 43 44 45 $file_name = $_FILES['upload']['name']; 46 $system_name = $company_ID.$category.$timestamp.".".pathinfo($_FILES['upload']['name'], PATHINFO_EXTENSION); 47 48 $file_url = "http://so4.mydns.jp/test/maika/dss/mediamanagement/file/".$system_name; 49 $class = 1; 50 51 try{ 52 $pdo = new PDO('mysql:dbname=DSS; host=localhost; charset=utf8','maika','powerB1234', 53 array(PDO::ATTR_EMULATE_PREPARES => false)); 54 } catch (PDOException $e) { 55 exit('データベース接続失敗。'.$e->getMessage()); 56 } 57 //プリペアドステートメント 58 $stmt = $pdo -> prepare("INSERT INTO T_FILE(company_ID,class,file_name,system_name,other,extension,touroku_date) VALUES (:company_ID,:class,:file_name,:system_name,:other,:extension,:touroku_date)"); 59 //プレースホルダへ実際の値を設定する 60 if ($stmt===false){ 61 // エラー処理 62 } 63 $stmt->bindparam(':company_ID',$company_ID, PDO::PARAM_STR); 64 $stmt->bindparam(':class', $class, PDO::PARAM_STR); 65 $stmt->bindparam(':file_name', $file_name, PDO::PARAM_STR); 66 $stmt->bindparam(':system_name', $system_name, PDO::PARAM_STR); 67 $stmt->bindparam(':other', $other, PDO::PARAM_STR); 68 $stmt->bindparam(':extension', $category, PDO::PARAM_STR); 69 $stmt->bindparam(':touroku_date', $time, PDO::PARAM_STR); 70 71 $stmt->execute(); 72 73 // 使用を終了したので、閉じます 74 $stmt = null; 75 $pdo = null;
MySQLテーブル構造(PHPMyAdmin)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。