Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP和MySQL:多重上传上的独立文件_Php_Mysql - Fatal编程技术网

PHP和MySQL:多重上传上的独立文件

PHP和MySQL:多重上传上的独立文件,php,mysql,Php,Mysql,你好,开发人员,我需要一个函数的帮助。问题如下: 我正在将多个图像上载到数据库。处理表单时,php脚本将收到如下数组: var\u dump($postdata): <form id="photos-add-form" role="form" novalidate enctype="multipart/form-data" class="form form-horizontal needs-validation" action="<?php print_link("photo

你好,开发人员,我需要一个函数的帮助。问题如下:

我正在将多个图像上载到数据库。处理表单时,php脚本将收到如下数组:

var\u dump($postdata):

    <form id="photos-add-form" role="form" novalidate enctype="multipart/form-data" class="form form-horizontal needs-validation" action="<?php print_link("photos/add?csrf_token=$csrf_token") ?>" method="post">
    <div>


        <div class="form-group ">
            <div class="row">
                <div class="col-sm-4">
                    <label class="control-label" for="foto">Add Photos <span class="text-danger">*</span></label>
                </div>
                <div class="col-sm-8">
                    <div class="">

                        <div class="custom-file">
                            <input class="custom-file-input" name="photo[]" id="ctrl-photo" filesize="6" multiple accept=".jpg,.png,.gif,.jpeg" filesize="6" maximum="12" required="" accept="" class="form-control" type="file" />
                            <label class="custom-file-label" for="ctrl-photo">[html-lang-0082]</label>
                        </div>


                    </div>


                </div>
            </div>
        </div>




        <div class="form-group ">
            <div class="row">
                <div class="col-sm-4">
                    <label class="control-label" for="album_id">Album <span class="text-danger">*</span></label>
                </div>
                <div class="col-sm-8">
                    <div class="">

                        <select required=""  id="ctrl-album_id" name="album_id"  placeholder="Selecione um álbum ..."    class="custom-select" >
                            <option value="">Select albumn ...</option>

                            <?php 
                            $album_id_options = $comp_model -> fotos_album_id_option_list();
                            if(!empty($album_id_options)){
                            foreach($album_id_options as $option){
                            $value = (!empty($option['value']) ? $option['value'] : null);
                            $label = (!empty($option['label']) ? $option['label'] : $value);
                            $selected = $this->set_field_selected('album_id',$value, '');
                            ?>
                            <option <?php echo $selected; ?> value="<?php echo $value; ?>">
                                <?php echo $label; ?>
                            </option>
                            <?php
                            }
                            }
                            ?>

                        </select>


                    </div>


                </div>
            </div>
        </div>




    </div>
    <div class="form-group form-submit-btn-holder text-center">
        <div class="form-ajax-status"></div>
        <button class="btn btn-primary" type="submit">
            Send
            <i class="fa fa-send"></i>
        </button>
    </div>
</form>
array(2){[“photo”]=>string(22)“wg2yi.jpg,l1b6c42j.jpg”[“album_id”]=>string(2)“15”}
执行mysql插入的脚本如下:

photocontroller.php

函数添加(){
如果(是后请求()){
Csrf::交叉检查();
$db=$this->GetModel();
$tablename=$this->tablename='photos';
$fields=$this->fields=array('foto','album_id');//插入字段
$postdata=$this->transform\u request\u data($\u POST);
$this->rules\u array=array(
“照片”=>“必需”,
“相册id”=>“必需”,
);
$this->sanitize_array=array(
'photo'=>'sanitize_string',
“相册\u id”=>“清理字符串”,
);
$this->filter\u vals=true;//设置是否删除空字段
$modeldata=$this->modeldata=$this->validate\u表单($postdata);
if(空($this->view->page_error)){
$rec\u id=$this->rec\u id=$db->insert($tablename,$modeldata);
如果(!空($rec_id)){
if(is_ajax()){
呈现json(“成功!”);
}
否则{
设置“flash”消息(“success!”,“success”);
如果(!empty($this->redirect)){
重定向到页面($this->redirect);//如果重定向url通过$\u GET传递
}
否则{
将_重定向到_页面(“照片”);
}
}
返回;
}
否则{
$page_error=null;
如果($db->getLastError()){
$page_error=$db->getLastError();
}
否则{
$page\u error=“error”;
}
if(is_ajax()){
呈现错误($page\u error);
返回;
}
否则{
$this->view->page\u error[]=$page\u error;
}
}
}
}
$this->view->page_title=“Add new”;
$this->view->render('photos/add.php',null,'main_layout.php');
}
使用上述脚本上载多个图像,照片保存在一个唯一的行中,用逗号分隔,如下所示:

行照片=>
id=>1
photo=>wg2yi.jpg,l1b6c42j.jpg//逗号分隔
相册id=>15
但是,我需要将每个图像保存在不同的行上:

行照片=>
id=>1
photo=>wg2yi.jpg//第一张图片
相册id=>15
id=>2
照片=>l1b6c42j.jpg//第二张图片
相册id=>15
我该怎么做?我尝试在photocontroller.php上添加此代码以获得单独的照片: photocontroller.php


foreach($key=>$val的postdata){
$getSeparatedItems=explode(“,”,$val);
foreach($getSeparatedItems作为$item){
回声“
  • $item

  • ”; }
    但是我不能单独上传图片。有人能帮我吗

    BaseController.php

    
    /**
    *使用gump库验证post数组
    *根据页面清理规则清理输入数组
    *根据定义的规则集验证数据
    *@var$filter_rules=true:如果postdata中未设置字段名,则仅对已发布的数组数据验证post数据
    *@return数组
    */
    函数验证表单($modeldata){
    如果(!empty($this->sanitize_数组)){
    $modeldata=GUMP::filter_input($modeldata,$this->sanitize_数组);
    }
    $rules=$this->rules\u数组;
    如果($this->filter\u rules==true){
    $rules=array();//设置新规则
    //仅为过帐数据中的字段设置规则
    foreach($modeldata作为$key=>$val){
    if(在数组中($key,$this->rules\u数组)){
    $rules[$key]=$this->rules_数组[$key];
    }
    }
    }
    //接受已发布字段(如果它们是页面字段的一部分)
    $fields=$this->fields;
    如果(!空($fields)){
    foreach($modeldata作为$key=>$val){
    if(!in_数组($key,$fields)){
    unset($modeldata[$key]);//如果字段不是字段列表的一部分,则删除字段
    }
    }
    }
    $is_valid=GUMP::is_valid($modeldata,$rules);
    //删除空字段值
    如果($this->filter\u vals==true){
    $modeldata=array_filter($modeldata,function($val){
    如果($val==“”| |为空($val)){
    返回false;
    }
    否则{
    返回true;
    }
    });
    }
    如果($有效!==真){
    if(is_数组($is_有效)){
    foreach($error\u msg有效){
    $this->view->page\u error[]=带标签($error\u msg);
    }
    }
    否则{
    $this->view->page\u error[]=$有效;
    }
    }
    返回$modeldata;
    }
    /**
    *如果请求值是简单数组,则使用逗号表示数组值
    *仅适用于此框架
    *@arr$\u POST | |$\u获取数据
    *@return数组
    */
    函数转换请求数据($arr){
    foreach($arr作为$key=>$val){
    if(is_数组($val)){