1

私は初心者で、あなたの助けが必要です。

アップロード スクリプト (MySQL) を作成しましたが、画像/ファイルをアップロードする必要があります。コードのアップロード部分をどこに配置すればよいかわかりません。

これは私のコードです:

     <?php
        error_reporting(E_ALL);
         mysql_connect("xx.xx.nl","xx","xxxx") or 
      die("Kan geen verbinding maken met de server!");
     mysql_select_db("xxx") or die("Kan de ingevoerde database niet vinden");

     if ($_POST){
        // file upload code
        if (is_uploaded_file($_FILES['img']['tmp_name'])) {
            move_uploaded_file($_FILES['img']['tmp_name'], 'test/upload/'.$_FILES['img']['name']);
        }


        $query = "INSERT INTO product (
        naam,
        id,
        titel,
        druk,
        img,
        beschrijving) 

    VALUES ('".$_POST['naam']."',
            '".$_POST['id']."',
            '".$_POST['titel']."',
            '".$_POST['druk']."',
        '".$_FILES['img']['name']."',
        '".$_POST['beschrijving']."')";


      echo $query;
      mysql_query($query) or die("Kan niet invoegen.<br>". mysql_error());
     header("location:login.php");

  exit;
    }

   ?>



<table>
    <form action='voegtoe.php' method='POST' enctype='multipart/form-data'>


        <tr><td>    Auteur : </td><td> <select name="naam"><option value="0">Selecteer</option>
    <?php
    include("../includes/config.php");
    $get=mysql_query("SELECT naam FROM auteurs");
    while($row = mysql_fetch_assoc($get))
    {
    ?>
    <option value = "<?php echo($row['naam'])?>" >
    <?php echo($row['naam']) ?>
    </option>
        <?php
        }               
    ?>

</select></tr></td>

   <tr><td>  Titel : </td><td> <input style="background-color: #757474;" type="text" 

    name="titel">  </tr></td>
       <tr><td>  Druk : </td><td> <input style="background-color: #757474;" type="text" name="druk">    </tr></td>
       <tr><td>  Beschrijving : </td><td> <textarea style="background-color: #757474;"  cols="25" rows="5" name="beschrijving"></textarea>  </tr></td>
       <tr><td>  Afbeelding : </td><td> <input style="background-color: #757474;" type="file" name="img" accept="image/jpg,image/gif,image/png" /> </tr></td>
       <tr><td> </td><td>   <input class="button" type="submit" value="Opslaan" >   </tr></td>


        </form>
      </table>

コードが更新されました

4

3 に答える 3

0

$_FILES 変数を介してファイルのアップロードを処理する必要があります。 http://php.net/manual/en/reserved.variables.files.php

于 2013-11-14T08:35:02.833 に答える
0

mysql_query の後にアップロード コードを配置する必要がありますが、条件を配置して、mysql クエリの成功時に実行される条件内にアップロード コードを記述することを忘れないでください。そうしないと、クエリに何らかのエラーが発生した場合でもファイルがアップロードされます。冗長データが増える

于 2013-11-14T08:42:22.123 に答える
0

$_FILES を使用してからアップロードする必要がありmove_uploaded_file()ます。そして、それをBLOBフィールドのDBに保存する必要があります。

このチュートリアルを使用してください - http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/uploading-files-to-mysql-database.aspx

PS: なぜ DB にアップロードしたいのですか? サーバーに保存しないのはなぜですか?

サーバーに保存し、DB へのパスを書き込む必要があります。

if (is_uploaded_file($_FILES['img']['tmp_name'])) {
  move_uploaded_file($_FILES['img']['tmp_name'], 'some_folder_with_images/'.$_FILES['img']['name']);
}

そして、これはあなたのクエリになります:

$query = "INSERT INTO product (
                naam,
                id,
                titel,
                druk,
                img,
                beschrijving) 

            VALUES ('".$_POST['naam']."',
                    '".$_POST['id']."',
                    '".$_POST['titel']."',
                    '".$_POST['druk']."',
                '".$_FILES['img']['name']."',
                '".$_POST['beschrijving']."')";

PS:mysql_*は非推奨です。使用してmysqli_*ください。

また、これを変更します。

<form action='voegtoe.php' method='POST'>

<form action='voegtoe.php' method='POST' enctype='multipart/form-data'>

そうしないと、ファイルはアップロードされません。

于 2013-11-14T08:37:43.427 に答える