在mysql中没有正确显示图像

时间:2014-02-28 02:18:54

标签: php mysql html5

![在此输入图片说明] [1]在那里我创建一个上传信息表..... 我的HTML代码是......

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Add New Templete</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <?php include 'side.php'; ?>
    <div class="main">
    <h2>Add New Templete</h2>
    <form action="add.php"method="post"  enctype="multipart/form-data">
        <table border="1px solid">
        <tr>
        <td>Templete Name:</td><td><input type="text" name="temp_name"></td></tr>
        <tr>
        <td>Templete Category</td><td><input type="text" name="category"></td></tr>
        <tr>
        <td>Templete Image</td><td><input name="MAX_FILE_SIZE" value="102400" type="hidden"><input type="file" name="image"></td></tr>
        <tr>
        <td>Templete Discription</td><td><input type="text" name="decp"></td></tr>
        <tr>
        <td>Templete Quantity</td><td><input type="text" name="qty"></td></tr>
        <tr>
        <td>Templete Price</td><td><input type="text" name="price"></td></tr>
        <tr>
            <td></td>
        <td>    
        <input type="submit" value="ADD">
        </td>
        </tr>
        </table>
    </form>

</div>
</body>
</html>

这是用于将其插入数据库的PHP代码...

<?php
include 'connection.php';
$name=$_POST['temp_name'];
$cat=$_POST['category'];
$image=$_FILES['image'];
$desc=$_POST['decp'];
$qty=$_POST['qty'];
$price=$_POST['price'];
$qry="INSERT INTO templetes(templete_name,category,image,description,quantity,price)VALUES('$name','$cat','$image','$desc','$qty','$price')";
$res=mysql_query($qry,$con);
if($res)
{

    header('location:product.php');
}
mysql_close($con);
?>

现在我想访问它并以某种方式显示所有信息,我的show.php代码是......

<?php
include 'connection.php';
$query = mysql_query("SELECT * FROM templetes");
$row = mysql_fetch_array($query);
$content = $row['image'];

header('Content-type: image/jpg');
     echo $content;


?>

但没有数据被访问,我的show.php代码将无法工作,即使它不会显示我存储在数据库中的图像,而且我的数据库中的图像也没有正确的大小,意味着图像的原始尺寸是40.3 kb,当它保存在数据库中时,它的大小只有5kb,为什么?

  

如何在将图像保存到mysql中时调整图像大小,就像在yahoo中一样   个人资料或g +我们为我们的个人资料选择一个图像,它将适合一个   指定的框架。

1 个答案:

答案 0 :(得分:0)

使用:

<?php
include 'connection.php';
$name=$_POST['temp_name'];
$cat=$_POST['category'];
$image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); //<== modification
$desc=$_POST['decp'];
$qty=$_POST['qty'];
$price=$_POST['price'];
$qry="INSERT INTO templetes(templete_name,category,image,description,quantity,price)VALUES('$name','$cat','$image','$desc','$qty','$price')";
$res=mysql_query($qry,$con);

mysql_close($con); // move this here, I think header() function prevents code placed after it to be interpreted.

if($res)
{

    header('location:product.php');
}

?>

使用此功能调整图片大小:http://php.net/manual/fr/function.imagecopyresized.php