2017-04-07 16 views
0

私はpdfをデータベースにアップロードしようとしています。 「ファイルのアップロード中にエラーが発生しました」というエラーが表示され続けます。データのうちのどれもがデータベースに挿入されません。PDFをアップロードしてデータベースに保存します

PHPやSQLにはあまり新しくない人もいますが、どこが間違っているか教えてください。

後で、いくつかのpfdsをマージして、新しい結合pdfをデータベースに保存しようとしています。

テーブル

CREATE TABLE `tbl_request` (
    `InvoiceNum` int(11) NOT NULL, 
    `userEmail` varchar(25) NOT NULL, 
    `Progress` enum('Uploaded','Verified and Awaiting Payment','Submitted to Department','Closed') NOT NULL DEFAULT 'Uploaded', 
    `UploadDate` datetime NOT NULL, 
    `FileName` varchar(11) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; 

PHPコード

<?php 
session_start(); 
require_once 'class.user.php'; 
$user_home = new USER(); 

if(!$user_home->is_logged_in()) 
{ 
    $user_home->redirect('index.php'); 
} 

if($_SESSION['userRole'] !== ('user')) 
{ 
    $user_home->redirect('index.php'); 
} 

$stmt = $user_home->runQuery("SELECT * FROM tbl_users WHERE userID=:uid"); 
$stmt->execute(array(":uid"=>$_SESSION['userSession'])); 
$row = $stmt->fetch(PDO::FETCH_ASSOC); 

?> 

<!DOCTYPE html> 
<html class="no-js"> 

    <body>         
<div id="body"> 
    <form action="<?php print $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data"> 
    <input type="file" name="file" /> 
    <button type="submit" name="btn-upload">upload</button> 
    </form> 
    <br /><br /> 
    <?php 
    if(isset($_GET['success'])) 
    { 
     ?> 
     <label>File Uploaded Successfully... <a href="view.php">click here to view file.</a></label> 
     <?php 
    } 
    else if(isset($_GET['fail'])) 
    { 
     ?> 
     <label>Problem While File Uploading !</label> 
     <?php 
    } 
    else 
    { 
     ?> 
     <label>Please only upload PDF files</label> 
     <?php 
    } 
    ?> 
</div> 
<?php 
     if(isset($_POST['btn-upload'])) 
    { 
    if ($_FILES['file']['type'] == "application/pdf") { 
     $update=date("Ymdhis"); 
     $mail =$row['userEmail']; 
     $sql="INSERT INTO tbl_request(userEmail,UploadDate) VALUES('$mail','$update)"; 
     mysql_query($sql); 
     $file = $update."-".$_FILES['file']['name']; 
     $file_loc = $_FILES['file']['tmp_name']; 
     $folder="uploads/"; 
     $new_file_name = strtolower($file); 
     $final_file=str_replace(' ','-',$new_file_name);   
     if(move_uploaded_file($file_loc,$folder.$final_file)) 
     { 
      $sql="UPDATE tbl_uploads SET(FileName) VALUES('$final_file') WHERE UploadDate = $update"; 
      mysql_query($sql); 
      ?> 
      <script> 
      alert('successfully uploaded'); 
      window.location.href='index.php?success'; 
      </script> 
      <?php 
     } 
     else 
     { 
      ?> 
      <script> 
      alert('error while uploading file'); 
      window.location.href='index.php?fail'; 
      </script> 
      <?php 
     } 
    } 
    else{ 
    ?> 
      <script> 
      alert('Only pdf files may be uploaded'); 
      window.location.href='index.php?fail'; 
      </script> 
      <?php 
    } 
} 
?> 

    </body>  
</html> 

答えて

-1

技術的にあなたは、データベース内のPDFファイルを保存していないため、SQLが、場所を格納したファイルへの参照のみ。だから、あなたが取得しているエラーを取得するには、あなたのif(move_uploaded_file($file_loc,$folder.$final_file))は、その経路問題おそらく、失敗しなければならない、あなたは相対パスを指定しているように見える、

try an absolute (full path) ie windows C:\folder\ or linux /home/user/public_html/uploads/ 
0

は、だから私は最終的に取り組んで私のコードを持って、ここではそれがためのものです将来同じことをする必要のある人。私は変更を希望

<?php 
     if(isset($_POST['btn-upload'])) 
    { 

    if ($_FILES['file']['type'] == "application/pdf") { 
     $link = mysqli_connect("localhost", "root", "", "test"); 
     $update=date("Ymdhis"); 
     $mail =$row['userEmail']; 
     $sql="INSERT INTO tbl_request(userEmail,uploadDate) VALUES('$mail','$update')"; 
     mysqli_query($link,$sql); 
     $file = $update."-".$_FILES['file']['name']; 
     $file_loc = $_FILES['file']['tmp_name']; 
     $folder="upload/"; 
     $final_file = strtolower($file); 
     //$final_file=str_replace(' ','-',$new_file_name); 

     if(move_uploaded_file($file_loc,$folder.$final_file))  { 

      $sql2="UPDATE tbl_request SET FileName ='".$final_file."' WHERE uploadDate = '".$update."'"; 
      mysqli_query($link,$sql2); 
      ?> 
      <script> 
      alert('successfully uploaded'); 
      //window.location.href='index.php?success'; 
      </script> 
      <?php 
     } 
     else 
     { 
      ?> 
      <script> 
      alert('error while uploading file'); 
      //window.location.href='index.php?fail'; 
      </script> 
      <?php 
     } 
    } 
    else{ 
    ?> 
      <script> 
      alert('Only pdf files may be uploaded'); 
      //window.location.href='index.php?fail'; 
      </script> 
      <?php 
    } 
} 
?> 

二つのこと:私はちょうどかどうかはわかりません(dbconfig.phpからこの情報を取得する方法があると確信していますmysqli_query($link,$sql);ため

  1. $link = mysqli_connect("localhost", "root", "", "test");

  2. 私は、3つのpdfをアップロードして、上記のように保存されたPHPコードを1つにマージすることができるようにしたいと思います。

+0

最後の部分は疑問です。これはあなたの解決策ですか、これは質問の編集を意図したものですか? –

+0

それは私が作りたいと思う更新を加えたものでした。 – Dylan

関連する問題