生成多个输入类型文件并上传并存储到db

时间:2017-12-03 10:47:38

标签: php html image-uploading

嗨...我正在尝试从我选择生成的数量上传图像并将图像名称保存到数据库中。例如,我选择生成3个输入类型“文件”,而不是3个输入将自动生成,因此我可以将其上传到文件夹并将名称保存到数据库中。我已经完成了其他类型的输入,如“文本”。但仍然停留在上传图片部分。 表单看起来像这样(如果我选择生成3次): enter image description here 这是我的表单代码的示例:

<?php
if(isset($_POST['btn-gen-form']))
{
?>
<form method="post" action="" enctype="multipart/form-data">
<input type="hidden" name="total" value="<?php echo $_POST["no_of_rec"]; ?>" 
/>
 <input type="hidden" name="vendorid" value="<?php echo $id;?>">
<table class='table table-bordered'>

<tr>
<th>##</th>
<th>Name</th>
<th>Description</th>
<th>Image</th> 
</tr>
<?php
for($i=1; $i<=$_POST["no_of_rec"]; $i++) 
{
    ?>
    <tr>
    <td><?php echo $i; ?></td>
    <td><input type="text" name="item_name<?php echo $i; ?>" 
placeholder="Name" class='form-control' required/></td>
    <td><input type="text" name="item_desc<?php echo $i; ?>" 
placeholder="description" class='form-control' required/></td>      
    <td><input type='file' name="file" id="file"  value=''></td>        
    </tr>
    <?php
}
?>
<tr>
<td colspan="6">    
<button type="submit" name="save_mul" class="btn btn-primary"><i 
class="glyphicon glyphicon-plus"></i> &nbsp; Insert all Records</button> 
<a href="additem.php" class="btn btn-large btn-success"> <i class="glyphicon 
glyphicon-fast-backward"></i> &nbsp; Back to index</a>
</td>
</tr>
</table>
</form>
<?php
}
?>

这里是后端部分:

<?php
include_once 'db.php';
if(isset($_POST['save_mul']))
{       
$allow = array("jpg", "jpeg", "gif", "png");
$todir = '../../userhome/cartu/carti/images/';
if ( !!$_FILES['file']['tmp_name'] ) // is the file uploaded yet?
{
$info = explode('.', strtolower( $_FILES['file']['name']) ); // whats the 
extension of the file
if ( in_array( end($info), $allow) ) // is this file allowed
{

$newfilename = round(microtime(true)) . '.' . end($info);       
    if ( move_uploaded_file( $_FILES['file']['tmp_name'], $todir 
.$newfilename ) )
    {
        $total = $_POST['total'];
        $n_img = $newfilename;      
for($i=1; $i<=$total; $i++)
{
    $fn6 = $_POST["vendorid"];
    $fn = $_POST["item_name$i"];
    $fn1 = $_POST["item_desc$i"];                               
    $sql="INSERT INTO items(vendorid,item_name,item_desc,item_image) 
VALUES('".$fn6."','".$fn."','".$fn1."','".$n_img."')";
    $sql = $db->query($sql);        
}   
if($sql)
{
    ?>
    <script>
    alert('<?php echo $total." records was inserted !!!"; ?>');
    window.location.href='additem.php';
    </script>
    <?php
}
else
{
    ?>
    <script>
    alert('error while inserting , TRY AGAIN');
    </script>
    <?php
}
    }
}
else
{
   echo "Invalid file"; // error this file ext is not allowed
}
}               
}
?>

我仍然是网络开发的新手,并且不确定我是否会问愚蠢的问题,但这个问题我已经被困了很长时间了。 a搜索了许多论坛社区,并且主要解决了在输入中上传的多个图像。 我参考的任何来源都很感激。谢谢。

2 个答案:

答案 0 :(得分:1)

每个输入文件名必须具有不同的名称。

<input type='file' name="file<?php echo $i; ?>" id="file<?php echo $i; ?>"  value=''>

答案 1 :(得分:0)

这项工作非常适合我,我刚刚在输入类型文件的名称上添加了<?php echo $i>,并在后端修改了一些排列,如下所示。

<?php
include_once 'db.php';
if(isset($_POST['save_mul']))
{       
$allow = array("jpg", "jpeg", "gif", "png");
$todir = '../../userhome/cartu/carti/images/';
$total = $_POST['total'];
for($i=1; $i<=$total; $i++) 
{
$imgupload = $_FILES["file$i"];     

if ( !!$imgupload['tmp_name'] ) // is the file uploaded yet?
{
$info = explode('.', strtolower( $imgupload['name']) ); // whats the 
extension of the file
if ( in_array( end($info), $allow) ) // is this file allowed
{
    if ( move_uploaded_file( $imgupload['tmp_name'], $todir 
.$imgupload["name"] ) )
    {
    $fn6 = $_POST["vendorid"];
    $fn = $_POST["item_name$i"];
    $fn1 = $_POST["item_desc$i"];
    $n_img = $imgupload["name"];    


        $sql="INSERT INTO 
shopping_items(vendorid,item_name,item_desc,item_image) 

VALUES('".$fn6."','".$fn."','".$fn1."','".$n_img."')";
    $sql = $db->query($sql);
if($sql)
{
    ?>
    <script>
    alert('<?php echo $total." records was inserted !!!"; ?>');
    window.location.href='additem.php';
    </script>
    <?php
}
else
{
    ?>
    <script>
    alert('error while inserting , TRY AGAIN');
    </script>
    <?php
}
}
}
else
{
   echo "Invalid file"; // error this file ext is not allowed
}
}
}               
}
?>