将文件插入mysql的问题

时间:2014-12-16 05:43:07

标签: php html mysql twitter-bootstrap

我在html(+ bootstrap)中有一个表单,相关部分在这里:

<div class="form-group">
    <label for="inputPic">Item Image</label>
    <input type="file" name="inputPic">
    <p class="help-block">Upload a picture</p>
</div>

用户按下提交并被带到另一个检查文件扩展名的php文件:

if (!empty($_FILES['inputPic']['tmp_name']))
{
    if ($_FILES['inputPic']['type'] == "image/jpeg" || $_FILES['inputPic']['type'] == "image/jpg" || $_FILES['inputPic']['type'] == "image/png")
    {
        if ($content = file_get_contents($_FILES['inputPic']['tmp_name']))
        {
            $image = addslashes($content);
        }
    }
}

最后尝试插入sql:

if (isset($image))
{
    if ($stmt = $mysqli->prepare("INSERT INTO posted_items (seller, post_date, expiration, image, description, name, category, startBid, buyNowPrice, minPrice, sold) VALUES (?, NOW(), ?, ?, ?, ?, ?, ?, ?, ?, 0)"))
    {
        $stmt->bind_param("issssiddd", $userid, $endDateAndTime, $image, $description, $itemName, $itemCategory, $startBid, $buyNow, $reservation);
        $stmt->execute();
        $stmt->close();
    }
}

sql插件工作正常,因为我在我的数据库中看到它,但图像(类型largeblob)根本没有显示给我。数据库中的图像字段中有一堆随机数据,但是当我调用

echo '< img class="img-responsive centered" src="data:image/jpeg;base64,'.base64_encode($row['image']).'"></img>';

我无法看到任何东西。我哪里错了?

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该将图像上传到服务器上的某个目录,并将路径保存在数据库中。