2016-07-17 10 views
0

OK抱き合わせにファイル名を送信リソース "テーブル。アップロードPDFファイルとファイルの入力と、私はそれは(PDFファイルのみ)をアップロードしたい提出し、私の "にファイル名を送信上のテキストフィールド</p> <p>で、小さなフォームを送信するために、データベース

リソーステーブルは次のようになります。

id (AUTO_INC & Primary) 
title (data from text field) 
filename (from uploaded file, preferably with extension aswell) 
dateadded (pulled from current date()) 

ここで私が持っているコードは、これまでのところです。

<form enctype="multipart/form-data" action="<? echo $PHP_SELF ?>" method="post" id="myform" class="basic-form"> 
    <?php 
    // IF FORM SUBMIT 
    if (isset($_POST['submit'])) 
    { 
     $title = $_POST['title']; 
     $dateLog = date("y-m-d"); // DATE OF ADDITION 
     $timeLog = date("H:i:s", time() - 3600); // TIME OF ADDITION 

// target directory & Extensions 
$uploads_dir = '../resource_docs/'; 
$allowedExts = array("pdf", "doc"); 

//Loop file uploads 
    foreach ($_FILES["upload"]["error"] as $key => $error) { 
     if ($error == UPLOAD_ERR_OK) { 
      $tmp_name = $_FILES["upload"]["tmp_name"][$key]; 
      $name = $_FILES["upload"]["name"][$key]; 
      move_uploaded_file($tmp_name, "$uploads_dir/$name"); 
     } 
    } 

    // INSERT QUERY 
    $sql="INSERT INTO resources (filename, title, dateadded) 
      VALUES ('$name', '$title', '$dateLog')"; 

    $query = mysql_query($sql) or die("Cannot query the database.<br>" . mysql_error()); 

    } 
    ?> 

    <input type="file" name="upload" /> 
    <input name='title' type='text' value='' placeholder='Title Here'/> 
    <input type="submit" name="submit" value="Upload"/> 
    </form> 

フォームを提出すると、データベース内のすべてを置き、ファイル名を除いて、それは私のターゲットディレクトリ内のアップロード、何もすることをブラウザの下部に表示されます。

私は何かが分かりませんでした と私はそれを私のコーディングから.pdfファイルを受け入れることができますか?

+0

あなたがここにすべてのログファイルをしてください投稿できますか? Linuxの '/ var/log/apache2/error.log'に似ています。しかし、あなたのコードはOKのようですが、あなたは指定されたディレクトリへの読み取り/書き込みアクセス権を持っていないかもしれません。 – ForceMagic

+0

あなたの$ uploads_dirを "resource_docs /" –

+0

に変更しようとしました。大丈夫ですが、.pdfをアップロードできません。他にもpng jpegなどのすべてのものが動作します...これはサーバーの設定と関係がありますか? –

答えて

1

ループが実行されているかどうかを確認するには、echo文を使用します。

例:

foreach ($_FILES["upload"]["error"] as $key => $error) { 
     echo "foreach working"; 
     if ($error == UPLOAD_ERR_OK) { 
      echo "entering into if"; 
      $tmp_name = $_FILES["upload"]["tmp_name"][$key]; 
      $name = $_FILES["upload"]["name"][$key]; 
      move_uploaded_file($tmp_name, "$uploads_dir/$name"); 
     } 
    } 
0

ファイルパスが存在しないか、無効である可能性があります。

+0

そこに、私も新しいフォルダを追加し、同じディレクトリに777のCHMODをアップロードし、ファイル名をdidntはdbに入ります –

関連する問題