1

私は現在、ユーザーがさまざまな製品の画像をアップロードする必要があるWebサイトに取り組んでいます。私はphp経由でMySqlデータベースを使用してそれを実装しています。

ユーザーから入力を受け取るための基本的なフォームの私のコードは次のとおりです。

<form enctype="multipart/form-data" action="testimage1.php" method="post" name="changer">
<input name="MAX_FILE_SIZE" value="102400" type="hidden">
<input name="image" accept="image/jpeg" type="file">
<input value="Submit" type="submit">
</form>

私のデータベーステーブルは次のとおりです。

 mysql> CREATE TABLE tbl_images (
 > id tinyint(3) unsigned NOT NULL auto_increment,
 > image blob NOT NULL,
 > PRIMARY KEY (id)
 > );

testimage1.phpには次のコードがあります:-

 $username = "root";
 $password = "";
 $host = "localhost";
 $database = "thinstrokes";


 $link = mysql_connect($host, $username, $password);
 if (!$link) {
 die('Could not connect: ' . mysql_error());
 }

// Select your database
mysql_select_db ($database);

    if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) { 

  // Temporary file name stored on the server
  $tmpName  = $_FILES['image']['tmp_name'];  

  // Read the file 
  $fp      = fopen($tmpName, 'r');
  $data = fread($fp, filesize($tmpName));
  $data = addslashes($data);
  fclose($fp);


  // Create the query and insert
  // into our database.
  $query = "INSERT INTO tbl_images ";
  $query .= "(image) VALUES ('$data')";
  $results = mysql_query($query, $link) or die(mysql_error());

  // Print results
  print "Thank you, your file has been uploaded.";

  }
  else {
  print "No image selected/uploaded";
  }

フォームを送信すると、エラーが発生します。No image selected/uploaded

私はエラーを受け取っていません...そして私はすでにこれを前に次のように求めました:

しかし、今まで私はデータベースに画像を保存することに成功していません。

4

2 に答える 2

1

あなたのスクリプトは問題なく動作しています。これは私がテストしたものです:

<?

if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) { 

  // Temporary file name stored on the server
  $tmpName  = $_FILES['image']['tmp_name'];  

  // Read the file 
  $fp      = fopen($tmpName, 'r');
  $data = fread($fp, filesize($tmpName));
  $data = addslashes($data);
  fclose($fp);


  // Create the query and insert

  // Print results
  print "Thank you, your file has been uploaded.";

  }
  else {
  print "No image selected/uploaded";
  }

?>

<form enctype="multipart/form-data" action="" method="post" name="changer">
<input name="MAX_FILE_SIZE" value="102400" type="hidden">
<input name="image" accept="image/jpeg" type="file">
<input value="Submit" type="submit">
</form>

実際に動作しているのを見たい場合は、リンクをお送りします。

それはあなたのコードを台無しにしている何か他のものであるに違いありません (*mysql エラーが発生しないように DB クエリを削除しましたが、スクリプトはそこでも動作していたことに注意してください。

于 2012-05-31T16:41:05.070 に答える
0

//これがあなたの問題の解決策です

<form enctype="multipart/form-data" action="" method="post" name="changer">
    <input name="MAX_FILE_SIZE" value="102400" type="hidden">
    <input name="image" accept="image/jpeg" type="file">
    <input value="Submit" type="submit">
</form>
<?php

    // connection to database
    include 'includes/connection.php';
?>

<?php

    if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) { 
        // Temporary file name stored on the server
        $tmpName  = $_FILES['image']['tmp_name'];  
        // Read the file 
        $fp      = fopen($tmpName, 'r');
        $data = fread($fp, filesize($tmpName));
        $data = addslashes($data);
        fclose($fp);
        $result = mysql_query("INSERT INTO image (image)VALUES ( '$data')", $connection);
        if(!$result)
        {
            die("Database query failed: ". mysql_error());
        }
        // Print results

        print "Thank you, your file has been uploaded.";
    }
    else 
    {
        print "No image selected/uploaded";
    }
?>

<?php
    //close connection
    include 'includes/close.php';
?>
于 2013-01-11T11:17:08.623 に答える