2016-07-05 11 views
1

enter image description hereファイルをディレクトリにアップロードし、その値をデータベースに保存しようとしています。このコードの何が問題なのか分かりません。ヘルプを事前にお寄せください 写真表示変数はエコーされます。phpファイルをデータベースにアップロード

$con=connect(); 
    $file_name=$_FILES['file']['name']; 
    $file_size=$_FILES['file']['size']/1024; 
    $display_name=$_POST['display_name']; 

    $upload_dir='../uploads/docs/'; 
    $file_temp=$_FILES['file']['tmp_name']; 
    $file_path=$upload_dir.$file_name; 
if(move_uploaded_file($file_temp,$file_path)) 
     { 
      if($con) 
      { 
      $query=mysqli_query($con,"insert into dcument_upload 
      values(null,'$display_name','$file_path','$file_size')"); 
      $rr=mysqli_num_rows($query); 
      if($rr) 
       { 
        echo 'Uploaded'; 
        echo $rr; 
       }else 
       { 
        echo "Upload failed"; 
       } 
      } 
      else 
      { 
       die("Cannot Connect"); 

      } 
     } 
     else 
     { 
      echo "<br>Upload Failed<br>Try Again!"; 
     } 
+0

このファイルを実行したときの出力は? IE:あなたの警告/エラーメッセージのいずれかを出力するのですか、それともPHPのエラーがありますか? –

+0

[mysqli_affected_rows()](http://php.net/manual/en/mysqli.affected-rows.php)を使用して、影響を受ける行の数を挿入クエリ – Saty

+0

で確認してください。何かエラーがありますか?働いて?? – Saty

答えて

1

これを試してください。変数を一重引用符で囲んでいました。

<?php 
    $con = connect(); 
    $file_name = $_FILES['file']['name']; 
    $file_size = $_FILES['file']['size']/1024; 
    $display_name = $_POST['display_name']; 

    $upload_dir = '../uploads/docs/'; 
    $file_temp = $_FILES['file']['tmp_name']; 
    $file_path = $upload_dir.$file_name; 

    if(move_uploaded_file($file_temp,$file_path)) { 
     if($con) { 
      $query = mysqli_query($con,"insert into dcument_upload values(null, ".mysqli_real_escape_string($con, $display_name).", ".mysqli_real_escape_string($con, $file_path).", ".mysqli_real_escape_string($con, $file_size)".)"); 
      $rr = mysqli_num_rows($query); 

      if($rr) { 
       echo 'Uploaded'; 
       echo $rr; 
      } else { 
       echo "Upload failed"; 
      } 
     } else { 
      die("Cannot Connect"); 
     } 

    } else { 
     echo "<br>Upload Failed<br>Try Again!"; 
    } 
0

あなたが最初のファイルの内容を取得する必要があります:

$file_data = file_get_contents($file_path); 
$query = mysqli_query($con, "INSERT INTO `dcument_upload ` VALUES (null, '". mysqli_real_escape_string($con, $display_name)."', '".mysqli_real_escape_string($con, $file_data). "', '".mysqli_real_escape_string($con, $file_size)."')"); 

はまた、SQLインジェクションに対して防ぐために特殊文字をエスケープするmysqli_real_escape_stringを使用しています。

+0

ファイル情報が別の変数に格納されています。直接挿入していません – shubhamj

関連する問題