2016-07-05 123 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)."')"); 

此外,使用mysqli_real_escape_string逃避特殊字符,以幫助防止對SQL注入。

+0

我已經將文件信息存儲在單獨的變量中。我沒有直接插入它們 – shubhamj