Codeigniter 如何在php中上载多个图像

Codeigniter 如何在php中上载多个图像,codeigniter,pyrocms,Codeigniter,Pyrocms,我正在开发codeigniter(PyroCMS)中的epaper模块。 我想知道如何一次上传多张图片 有人能指导我上传多张图片吗 我试过了,但我只找到了我在新闻模块中已经使用过的上传单个图像的代码。检查这一个 在查看文件中给出图像上传代码: echo form_label('Multi Images','',$label_attr); echo form_upload($multi_photo_attr); 在哪里 $multi_photo_attr = array(

我正在开发codeigniter(PyroCMS)中的epaper模块。
我想知道如何一次上传多张图片

有人能指导我上传多张图片吗

我试过了,但我只找到了我在新闻模块中已经使用过的上传单个图像的代码。

检查这一个


在查看文件中给出图像上传代码:

echo form_label('Multi Images','',$label_attr);
echo form_upload($multi_photo_attr);
在哪里

$multi_photo_attr   =   array(
            'id'        =>  "cat_multi_images",
            'class'     =>  "multi",
            'name'      =>  "cat_multi_images[]",
            'maxlength' =>  "25",
            'multiple'  =>  "multiple"                      
    );
现在,您需要在根目录中创建一个文件夹,您的照片将上载到该文件夹

之后,在控制器的方法中,您需要将该文件夹的路径存储在一个变量中。该变量将用于上载文件夹中的图像

接下来,获取数组中所有图像的名称,如下所示:

foreach($_FILES["cat_multi_images"] as $key => $value)
{
$i=0;
foreach($value as $key1 => $value1)
{
$multi_photo_array[$i][$key]    =   $value1;
$i++;
}
之后,对于每个数组元素,即对于每个图像,运行以下代码以上载它:

function UploadFile($files,$path)
{   

    $extensions         =   array('jpeg','JPEG','gif','GIF','png','PNG','jpg','JPG','pdf','PDF','ZIP','zip','rar','RAR','html','HTML','TXT','txt','doc','docx','DOC','DOCX','ppt','PPT','pptx','PPTX','xlsx','XLSX','xls','XLS','exe','EXE','mp3','MP3','wav','WAV','m4r','M4R','mpeg','MPEG','mpg','MPG','mpe','MPE','mov','MOV','avi','AVI',);


    $destination        =   $path.$files["name"];
    //print_r($destination);exit;
    // GET FILE PARTS
    $fileParts          =   pathinfo($files['name']);
    $file_name          =   $files['name'];
    $file_name_only     =   $fileParts['filename'];
    $file_name_only     =   preg_replace('/[^a-zA-Z0-9]/','',$file_name_only);
    $file_extention     =   $fileParts['extension'];
    $Count              =   0;

    $destination        =   $path.$file_name_only.".$file_extention";
    $file_name          =   $file_name_only.".$file_extention";;

    // THIS SHOULD KEEP CHECKING UNTIL THE FILE DOESN'T EXISTS
    while( file_exists($destination))
    {
      $Count += 1;
      $destination  =  $path. $file_name_only."-".$Count.".$file_extention";
      $file_name    =  $file_name_only."-".$Count.".$file_extention";
    }

    $fileextension='';
    $filename='';
    if(!empty($files))
    {
        $filename=$files['name'];

        $fileextension=substr($filename,strpos($filename,".")+1);

        if(in_array($fileextension,$extensions))
        {

            $uploadstatus=move_uploaded_file($files["tmp_name"],$destination);
            if($uploadstatus)
            {
                return $file_name;
            }
            else
            {
                return false;
            }
        }
        else
        {
            return false;
        }   
    }       
}
只要复制上面的代码。它应该工作,因为它是为一般情况下由我!您可以在模型文件中复制该代码,并在控制器中调用它,如下所示:

 $pr_photo_data = $this->admin_model->UploadFile($value,$targetPath_images);
$photo_list[]           =   $pr_photo_data;
然后将每个图像存储在数据库中

foreach($photo_list as $image)
{
$pro_image["cat_multi_images"]  =   $image;
$pro_retId =    $this->admin_model->add_multipic_cat($pro_image);
}
在哪里

小心,小心,每一步都要准确

function add_multipic_cat($data) 
    {
        $retId = $this->database->query_insert("photo", $data);
        return $retId;
    }