2

メンバー プロファイルの画像をアップロードし、それを php を使用してデータベースに保存してから取得しようとしていますが、うまくいきません

これは、画像を挿入しようとしているものです:

<html>
<head>
<title> Upload an image </title>
</head>
<body>
<form action="index.php" method="POST" enctype="multipart/from/data">
  File:
  <input type="file" name="image" > <input type="submit" value="upload">
</form>
</body>
</html>
<?php

  mysql_connect("localhost", "root","") or die ("could not connect to the server");
  mysql_select_db("project") or die ("that database could not be found");

  $file = $_FILES['image']['tmp_name'];

  if (!isset($file))
     echo "please select file";
  else
  {

     $image= addslashes(file_get_contents($_FILES['image']['tmp_name']));
     $image_name = addslashes($_FILES['image']['name']);
     $image_size = getimagesize($_FILES['image']['tmp_name']);

     if($image_size == FALSE)
        echo "that not image ";

     else
     {

         if (!$insert= mysql_query("INSERT INTO user_info (image) VALUES ('$image')"))
             echo "Problem";

         else
         {

             echo "image: <p /> your image <p /><img src='view.php?id="id"'>";
         }
     }


 }

これは画像を取得するためのものです

<?php

   // do some validation here to ensure id is safe
   mysql_connect("localhost", "root","") or die ("could not connect to the server");
   mysql_select_db("project") or die ("that database could not be found");
   $id = addslashes($_REQUEST['id']);

   $image = mysql_query("SELECT * FROM user_info WHERE id='$id'");
   $image = mysql_fetch_assoc($image);
   $image = $image['image'];

   header("Content-type: image/jpeg");
   echo $image;
?>
4

5 に答える 5

3

自分のしていることをもう一度考え直したほうがいいと思います。

ファイルを mysql データベースに保存するのはなぜですか? つまり、そのポイントは何ですか?

ファイル システムは、ファイルを格納するためのエキスパート データベースです。そのため、ファイルを通常のデータベースではなく、ファイル システムに保存することをお勧めします。

イメージは、ディレクトリ (0102003.gif) 内の番号で名前を付けることができ、mysql レコード内のファイル名を介してアドレス指定できます。

データベースにファイル ストレージが本当に必要な場合、mysql はそのためのツールではありません。

mongoDB を見てください。

PS: mysql インターフェースは非推奨です。mysqli または PDO を使用してください。

于 2013-05-05T08:28:57.753 に答える
0

PHP Web サイトに画像を保存するには、ファイルをディレクトリに配置し、ファイル名を mySQL データベースに保存するだけです。幸運を!

于 2013-05-05T08:35:27.167 に答える
0

このコードを試してみてください。

<?php
    mysql_connect("localhost", "root","") or die ("could not connect to the server");
    mysql_select_db("database1") or die ("that database could not be found");

    $file = $_FILES['image']['tmp_name'];

    $image= addslashes(file_get_contents($_FILES['image']['tmp_name']));
    $image_name = addslashes($_FILES['image']['name']);
    $image_size = getimagesize($_FILES['image']['tmp_name']);

    mysql_query("INSERT INTO table1 (id,image) VALUES ('1','{$image}')");        
?>
于 2014-02-24T05:56:11.767 に答える