Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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
Image CI中的文件上载错误_Image_Codeigniter_File Upload - Fatal编程技术网

Image CI中的文件上载错误

Image CI中的文件上载错误,image,codeigniter,file-upload,Image,Codeigniter,File Upload,我在CodeIgniter中使用多文件上传模块;该脚本是完全成功的,只是一个简单的错误,可能是一个愚蠢的一个正在发生 首先,我想分享一个概念。在一个网站中,人们现在使用他们的电子邮件id进行注册,当人们使用电子邮件id进行注册时,服务器上会根据电子邮件id的名称为那个家伙创建一个文件夹。routroy@gmail.com,然后当我登录时,会话将以$\u session['logged\u user']的身份启动=saswat.saz。routroy@gmail.com. 同样,当我注册时,会在服

我在CodeIgniter中使用多文件上传模块;该脚本是完全成功的,只是一个简单的错误,可能是一个愚蠢的一个正在发生

首先,我想分享一个概念。在一个网站中,人们现在使用他们的电子邮件id进行注册,当人们使用电子邮件id进行注册时,服务器上会根据电子邮件id的名称为那个家伙创建一个文件夹。routroy@gmail.com,然后当我登录时,会话将以$\u session['logged\u user']的身份启动=saswat.saz。routroy@gmail.com.

同样,当我注册时,会在服务器中创建一个名为saswat.saz的文件夹。routroy@gmail.com. 现在我想将图像上传到文件夹saswat.saz中。routroy@gmail.com.

我正在使用脚本

foreach($_FILES['photo']['name'] as $key=>$val)
          {
             if($_FILES['photo']['name'][$key]=="")
                {
                  //return "Successfully Added";
                }
             else if($_FILES['photo']['name'][$key]!='' && ($_FILES['photo']['type'][$key]='jpeg'
                     || $_FILES['photo']['type'][$key]='jpg' || $_FILES['photo']['type'][$key]='JPG'
                     || $_FILES['photo']['type'][$key]='JPEG') )
                {

                      $f_name=$_FILES['photo']['name'][$key];
                      $s_name=array();
                      $s_name=explode('.',$f_name);
                      $name=$s_name[0];
                      $name="(".$order_date.")".$name;
                      $slug= $name;
                      $slug = trim($slug," ");
                      $slug = trim($slug,"-");
                      $slug=str_replace(" ", "-", $slug);
                      $slug=str_replace("/", "-", $slug);
                      $slug=str_replace("|", "-", $slug);
                      $slug=str_replace("!", "-", $slug);
                      $slug=str_replace("+", "-", $slug);
                      $slug=str_replace("*", "-", $slug);

                      $data = array(
                             'photo_id' => NULL,
                             'order_id' => $last_order_id,
                             'user_id' => $user_id,
                             'photo_name'=>$name,
                             'photo_folder'=>$_SESSION['logged_user'],
                             'order_date'=>$order_date
                             );
                      if($this->db->insert('photo_table', $data))
                        {
                             $last_id=mysql_insert_id();
                             $slug= $last_id."-".$slug;
                             $this->db->query("UPDATE photo_table
                             SET photo_slug='$slug' WHERE photo_id='$last_id'");
                        }
                      $image= $_SESSION['logged_user'].'/'.md5(uniqid(rand())).$_FILES['photo']['name'][$key];
                      $img="./".$image;
                      move_uploaded_file($_FILES['photo']['tmp_name'][$key],$img);
                      $fullpath=$image;
                      $this->db->query("UPDATE photo_table
                                SET photo_path='$fullpath' WHERE photo_id='$last_id'");

                }

          }
          return "Successfully Uploaded";
其中$_SESSION['logged_user']=saswat.saz。routroy@gmail.com. 现在,这个脚本没有给出任何错误,但是仍然没有上传文件,尽管数据库正在按原样更新

但如果我使用脚本:

$image= 'photo_folder/'.md5(uniqid(rand())).$_FILES['photo']['name'][$key];
而不是

$image= $_SESSION['logged_user'].'/'.md5(uniqid(rand())).$_FILES['photo']['name'][$key];

然后文件被完美上传。这意味着导致错误的正是文件夹名,但我需要用这种方法上载文件。

这将是文件夹名

您可以使用用户ID作为文件夹名称吗

例如

否则,您将需要从其电子邮件中删除依赖于操作系统的文件夹名称中不允许的所有字符。

您不能作为

foreach($_FILES['photo']['name'] as $key=>$val){ }
你应该使用

print_r($_FILES['photo']['name']);
die();
了解找到的数组。 这与您的想法不同,在本例中,它在第0个索引名中返回一个2D数组,在第1个索引名中返回一个数组,该数组包含进一步的索引号和图像名称。 您应该将此数组拆分为一个食物数组以传入函数

do_upload();
这边

<?php
class Uploads extends CI_Controller {

function __construct()
{
    parent::__construct();
    $this->load->helper(array('form', 'url'));
}

function do_upload($field="1")
{
    $error_data=array();
    $success_data=array();
    $data = array();
    $this->load->helper('url');
    if($this->input->post("btn"))
    {   
        $images = array();
        $name=array();
        $field=0;
        $config['upload_path'] = dirname(__FILE__).'/../../assets/';
        $config['allowed_types'] = 'gif|jpg|png|jpeg';
        $config['max_size'] = '100';
        $config['max_width']  = '1024';
        $config['max_height']  = '768';

        $this->load->library('upload', $config);

        foreach ($_FILES["fileimage"]['name'] as $k=>$v)
        {
            $_FILES['images[]']['name']= $_FILES['fileimage']['name'][$k];
            $_FILES['images[]']['type']= $_FILES['fileimage']['type'][$k];
            $_FILES['images[]']['tmp_name']= $_FILES['fileimage']['tmp_name'][$k];
            $_FILES['images[]']['error']= $_FILES['fileimage']['error'][$k];
            $_FILES['images[]']['size']= $_FILES['fileimage']['size'][$k];

            $field++;
            $name[]=$_FILES['fileimage']['name'][$k];

            if ( ! $this->upload->do_upload("images[]"))
            {

                $error_data[] = $this->upload->display_errors();
                $success_data[]="";
            }
            else
            {
                $success_data[] = $this->upload->data();
                $error_data[]="";
            }
        }
        $data['name']=$name;
        $data['error']=$error_data;
        $data['success']=$success_data;

    }
    $data['field']=$field;
    $this->load->view('upload_form',$data);
}
}
<?php
class Uploads extends CI_Controller {

function __construct()
{
    parent::__construct();
    $this->load->helper(array('form', 'url'));
}

function do_upload($field="1")
{
    $error_data=array();
    $success_data=array();
    $data = array();
    $this->load->helper('url');
    if($this->input->post("btn"))
    {   
        $images = array();
        $name=array();
        $field=0;
        $config['upload_path'] = dirname(__FILE__).'/../../assets/';
        $config['allowed_types'] = 'gif|jpg|png|jpeg';
        $config['max_size'] = '100';
        $config['max_width']  = '1024';
        $config['max_height']  = '768';

        $this->load->library('upload', $config);

        foreach ($_FILES["fileimage"]['name'] as $k=>$v)
        {
            $_FILES['images[]']['name']= $_FILES['fileimage']['name'][$k];
            $_FILES['images[]']['type']= $_FILES['fileimage']['type'][$k];
            $_FILES['images[]']['tmp_name']= $_FILES['fileimage']['tmp_name'][$k];
            $_FILES['images[]']['error']= $_FILES['fileimage']['error'][$k];
            $_FILES['images[]']['size']= $_FILES['fileimage']['size'][$k];

            $field++;
            $name[]=$_FILES['fileimage']['name'][$k];

            if ( ! $this->upload->do_upload("images[]"))
            {

                $error_data[] = $this->upload->display_errors();
                $success_data[]="";
            }
            else
            {
                $success_data[] = $this->upload->data();
                $error_data[]="";
            }
        }
        $data['name']=$name;
        $data['error']=$error_data;
        $data['success']=$success_data;

    }
    $data['field']=$field;
    $this->load->view('upload_form',$data);
}
}