【问题标题】:PHP image not showing upPHP图像未显示
【发布时间】:2011-11-16 20:56:52
【问题描述】:

我下载了一个网络教程,其中包含一个 php 购物车和一个 mysql 数据库,其中已经内置了表格。我设法将整个购物车集成到我自己的网站中。我的网站上有一个表格,管理员可以上传产品,这些产品会发送到数据库,并显示在网站上供用户查看。我遇到的问题是图像。在本教程中,图像是手动输入到 mysql 数据库中的。

我的表格如下:

    <form action="productsadded.php" method="post">

<table border="0">
  <tr>
    <td><label for="name">Product Name:</label>
</td>
    <td><span id="sprytextfield1">
      <input type="text" name="name" id="name" />
      <span class="textfieldRequiredMsg">Enter Products Name</span></span></td>
  </tr>
  <tr>
    <td><label for="description">Description: </label>
</td>
    <td><span id="sprytextarea1">
      <textarea name="description" id="description" cols="45" rows="5"></textarea>
      <span class="textareaRequiredMsg">Enter Products Description</span></span></td>
  </tr>
  <tr>
    <td>    <label for="price">Price: </label>
</td>
    <td><span id="sprytextfield2">
    <input type="text" name="price" id="price" />
    <span class="textfieldRequiredMsg">Enter Price</span><span class="textfieldInvalidFormatMsg">Numbers Only</span></span></td>
  </tr>
  <tr>
    <td><label for="price">Image: </label></td>
    <td><input name="picture" id="picture" accept="image/jpeg" type="file" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input name="" type="submit" value="Add Product" /></td>
  </tr>
</table>

添加产品页面如下:

  <?php


$name = $_REQUEST['name'];
$description = $_REQUEST['description'];
$price = $_REQUEST['price'];
$picture = $_REQUEST['picture'];

$con = mysql_connect("localhost","*****","*****");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db('jahedhus_91', $con);

$sql="INSERT INTO products (name, description, price, picture) VALUES ('$name', '$description', '$price', '$picture')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }

mysql_close($con)
?>

我遇到的问题是,一旦将产品添加到数据库中,该产品的图像就不会显示在网站上。除图片外,均显示产品的名称、详细信息和价格。

显示产品信息的sql语句如下:

<table border="0" cellpadding="2px" width="600px">
    <?
        $result=mysql_query("select * from products");
        while($row=mysql_fetch_array($result)){

    ?>
<tr>
    <td><img src=<?=$row['picture']?> /></td>
    <td>    <b><a href="products.php?product_id=<?=$row['serial']?>"><?=$row['name']?></a></b><br />
            <?=$row['description']?><br />
            Price:<big style="color:green">
                £<?=$row['price']?></big><br /><br />
            <input type="button" value="Add to Cart" onclick="addtocart(<?=$row['serial']?>)" />
        </td>
    </tr>
<tr><td colspan="2"><hr size="1" /></td>
<? } ?>

抱歉,帖子太长了,任何建议都会有所帮助。

谢谢

【问题讨论】:

  • 您是要将图片的内容(数据)保存到数据库中,还是只保存一个名称。您的代码意图与您要执行的操作相冲突。
  • 我想把图片存入数据库

标签: php mysql shopping-cart


【解决方案1】:

乍一看,我注意到您的表单标签中没有 enctype="multipart/form-data"。

<form action="productsadded.php" method="post" enctype="multipart/form-data">

乍一看,我注意到您正尝试使用$_REQUEST['picture'] 将图像直接存储在数据库中。它不会那样工作。这实际上取决于购物车如何引用数据库中的图像。它只是一个文件名吗?在这种情况下,您需要使用类似:

$target_path = 'path/to/images/'.basename( $_FILES['picture']['name']); 
move_uploaded_file($_FILES['picture']['tmp_name'], $target_path);

并将$target_path作为图片保存在数据库中。这会将上传的文件移动到产品图片目录中。

我建议您在购物车之外单独学习一些关于 php 文件上传的教程,并首先掌握它。

编辑:刚刚注意到您要将图像存储在数据库中的评论。这更复杂,但这看起来是一个很好的教程:http://www.phpriot.com/articles/storing-images-in-mysql

【讨论】:

  • 嗨,感谢您的回复,但我实际上将这行代码放在哪里: $target_path = 'path/to/images/'.basename( $_FILES['picture']['name' ]); move_uploaded_file($_FILES['picture']['tmp_name'], $target_path);
  • 您不能只复制代码,您需要弄清楚产品图像当前存储在哪里,以及它们的 url 如何存储在数据库中。但它可以代替$picture = $_REQUEST['picture'];。而不是将$picture 插入数据库,而是将网址插入图像。
  • 我迷路了。我出现了一个错误:警告:move_uploaded_file(images/13092011152.jpg)[function.move-uploaded-file]:无法打开流:/home/jahedhus/public_html/music/admin/productsadded 中没有这样的文件或目录第 78 行的 .php 警告:move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpiiTE22' to 'images/13092011152.jpg' in /home/jahedhus/public_html/music/admin/productsadded .php 在第 78 行
猜你喜欢
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-05
  • 1970-01-01
  • 2016-01-13
  • 1970-01-01
  • 2015-10-30
相关资源
最近更新 更多