緊急の助けを! Codeigniter は PHPExcel を呼び出すことができません
私は Codeigniter のファイル アップロード クラスを使用して CSV または Excel ファイルをアップロードすると同時に、コンテンツを読み取ってデータベースにロードしました。私のプログラムは次のとおりです:
controllers/products.php ファイル:
$memsn = $this->session->userdata('MEMSN');
$this->load->library('Excel_Read_Operat');
$groups = array('購入者', '営業マン', '閲覧者','販売者');
If ($this->ion_auth->in_group($groups))
{
$this->session->set_flashdata('message', $this->lang->line("access_denied"));
$data['message'] = (validation_errors() ? validation_errors() : $this->session->flashdata('message'));
redirect('module=products', 'refresh');
}
$this->form_validation->set_rules('userfile', $this->lang->line("upload_file"), 'xss_clean');
if ($this->form_validation->run() == true)
{
If ( isset($_FILES["userfile"])){
$this->load->library('upload_photo');
$dest_dir = 'uploads/'.$memsn.'/';
$this->dest_dir_fortest = $dest_dir;
if($this->upload_photo->direct_is_exists($dest_dir)){
}その他{
redirect("module=products&view=upload_csv", 'refresh');
}
$config['upload_path'] = $dest_dir;
$config['allowed_types'] = 'csv|xls|xlsx';
$config['max_size'] = '2048';
$config['overwrite'] = TRUE;
$old_file_name = $_FILES["ユーザーファイル"]["名前"];
$new_file_name = $this->getSystemTime().$_FILES["userfile"]["name"];
$config['file_name'] = $new_file_name;
//初期化
$this->upload_photo->initialize($config);
if( ! $this->upload_photo->do_upload()){
// エラーをエコーします
$error = $this->upload_photo->display_errors();
$this->session->set_flashdata('message', $error.$dest_dir);
redirect("module=products&view=upload_csv", 'refresh');
}
if ($this->upload_photo->file_ext == '.csv') {
$csv = $this->upload_photo->file_name;
Excel_Read_Operat::initialized($dest_dir.$new_file_name);
$phpexcel_csv_arr_table = Excel_Read_Operat::GetArrTable_CVS();
if(!empty($phpexcel_csv_arr_table)){
$keys = array('code','name','category_id','STATUS','DESCRIPTION','DECDESCTION','CUSTPRICE','LENGTH','HEIGHT','WIDTH','STATUS');
$final = array();
foreach ($phpexcel_csv_arr_table as $row_csv_value){
$final[] = array_combine($keys, $value);
foreach($final as $csv_pr) {
if($this->products_model->getProductByCode($csv_pr['code'])) {
$this->session->set_flashdata('message', $this->lang->line("check_product_code")." (".$csv_pr['code']."). ".$this ->lang->line("code_already_exist"));
redirect("module=products&view=upload_csv", 'refresh');
}
}
}
library/ の下には Excel_Read_Operat.php クラス ファイルがあり、そのフォルダーの下には PHPExcel.php と PHPExcel フォルダーがあります。 Excel_Read_Operat.php クラスは次のとおりです:
if ( ! 定義('BASEPATH')) exit('直接スクリプトへのアクセスは許可されません');