替代选项:escapeshellarg()已出于安全原因而被禁用

时间:2016-03-22 09:57:42

标签: php codeigniter

可以尝试在实时服务器上的codeigniter上传文件的其他选项。

我正在服务器上传 .ini ,但我收到此错误:

  

遇到PHP错误

     

严重性:警告

     

消息:出于安全原因已禁用escapeshellarg()

     

文件名:libraries / Upload.php

     

行号:1039

现在看完这个链接后:

escapeshellarg

EscapeshellARG

在社区上,他们建议在 PHP.ini 文件中进行更改。但在我的情况下,我无法访问它,因为我们在共享服务器上。

那么在codeigniter上传文件的可能方法是什么?

这是我的上传代码:

function do_upload()
    {
        $config['upload_path'] = './uploads/';
        $config['allowed_types'] = '*';

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


        if ( ! $this->upload->do_upload())
        {
            $error = array('error' => $this->upload->display_errors());

            $this->load->view('customer/upload/upload_ini', $error);
        }
        else
        {

            $data = array('upload_data' => $this->upload->data());

            $id = $this->session->userdata('id');

            foreach ($data as  $row) 
            {
                $file_name = $row['file_name'];
                $file_path = $row['file_path'];

            }

            $site = $this->session->userdata('site');
                 $insert_data = array(
                    'customer_id' => $id,
                    'base_ini_filename' => $file_name,
                    'file_path'=>$file_path,
                    'site_key'=>$site
                     );

                $this->db->insert('base_ini', $insert_data);

                redirect('customer/upload_ini/index');

                $this->data['subview'] = 'customer/upload/upload_success';
                $this->load->view('customer/_layout_main', $this->data);
        }

0 个答案:

没有答案