在mysql中存储多个图像

时间:2013-12-21 16:06:30

标签: php image

我会重新解释我的问题。

我的问题不是仅存储图像..而是存储多个图像以及文本,描述等。我研究了遍布堆栈的溢出查找答案,但我发现的大多数是与存储图像相关的答案。我想找到如何同时插入多个数据(名称,图像,描述)。

我遇到困难的唯一部分是多重图像部分。

此外,我的表单是使用jquery动态生成的。

我的数据库结构就像

id |名字|图片|描述|价格

这是我的HTML:

<td><input type="text" class="form-control" name="item[]" placeholder="Name of Item" /></td>
<td><input type="text" class="form-control" name="desc[]" placeholder="Description" /></td>
<td><input type="text" class="form-control" name="price[]" placeholder="Price" /></td>
<td><input type="text" class="form-control" name="brand[]" placeholder="Brand" /></td>
<td><input type="file" name="images" class="form-control" /></td>
<input type="submit" id="save-product" class="btn btn-success" name="submit" value="Submit">

这是我的PHP:

if(isset($_POST['submit']) ){
$name = $_FILES['images']['name'];
$type = $_FILES['images']['type'];
$size = $_FILES['images']['size'];
$temp = $_FILES['images']['tmp_name'];
$error = $_FILES['images']['error'];
$allowed = array(
    "image/jpeg",
    "image/jpg",
    "image/png");
$con = mysqli_connect("localhost","root", "", "db_elective");
if(in_array($type, $allowed) && $size < 2000000 && !empty($_POST['item'])){
    $ext = end(explode(".", $name));
    $newFilename = sha1(date("Y-m-d h:i:s")) . "." . $ext;
    if(move_uploaded_file($temp, "../uploaded" . $newFilename)){

        $item = $_POST['item'];
        $desc = $_POST['desc'];
        $price = $_POST['price'];
        $brand = $_POST['brand'];
        $image = $newFilename;

        for($x = 0; $x < count($item); $x++){
            $vItem = $item[$x]; 
            $vdesc = $desc[$x];
            $vbrand = $brand[$x];
            $vImg = $image[$x];
            $vprice = $price[$x];
            mysqli_query($con, "INSERT INTO tb_items (product_name, product_desc, product_img, product_brand, price) 
                VALUES('$vItem','$vdesc', '$vImg', '$vbrand', '$vprice')");
        }


    }

}else{
    echo "Wrong";
}

}

2 个答案:

答案 0 :(得分:0)

如果您同时拍摄多张图片,请先更改您的表单,

<td><input type="file" name="images[]" class="form-control" /></td>
<td><input type="file" name="images[]" class="form-control" /></td>

然后你可以同时拍摄多张照片 - 然后使用foreach循环处理图像--i.e。通过逐个上传并为每个记录插入新记录来说。

答案 1 :(得分:0)

您可以像使用常规表单字段一样使用PHP的数组表示法:

Image 1:  <input type="file" name="images[]" class="form-control" />
Image 2:  <input type="file" name="images[]" class="form-control" />