Загрузите 2 файла Excel с использованием PHP в codeigniter через PHPSpreadsheet
Я пытаюсь прочитать 2 файла Excel и сохранить в БД. Я использую PHPSpreadSheet, чтобы прочитать файл Excel.
Удалось вставить первый файл, но не удалось вставить оба файла.
public function import_excel_files()
{
$this->load->helper('url_helper');
$this->load->model('model_finance');
//upload daily collection file
$file_mimes = array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
if(isset($_FILES['upload_file']['name']) && in_array($_FILES['upload_file']['type'], $file_mimes))
{
$arr_file = explode('.', $_FILES['upload_file']['name']);
$extension = end($arr_file);
if('csv' == $extension)
{
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
}
else
{
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
}
$spreadsheet = $reader->load($_FILES['upload_file']['tmp_name']);
$sheetData = $spreadsheet->getActiveSheet()->toArray();
// this function is to insert daily collection to db
$this->model_finance->set_daily_collection($sheetData);
}
//upload daily sales file
$file_mimes = array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
if(isset($_FILES['upload_file_PBB']['name']) && in_array($_FILES['upload_file_PBB']['type'], $file_mimes))
{
$arr_file = explode('.', $_FILES['upload_file_PBB']['name']);
$extension = end($arr_file);
if('csv' == $extension)
{
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
}
else
{
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
}
$spreadsheet = $reader->load($_FILES['upload_file_PBB']['tmp_name']);
$sheetData = $spreadsheet->getActiveSheet()->toArray();
// this function is to insert daily sales to db
$this->model_finance->set_daily_sales($sheetData);
}
$this->load->view('pages/fin_matchpbb');
}
Я ожидаю, что загрузка файла Excel и вставка в БД, но сейчас.. только 1-й файл успешно вставить в БД.. Второй файл не удалось. Я не уверен, почему..:(
1 ответ
Вам нужно зациклить на $_FILES, как показано ниже код
if ($_FILES['upload']) {
$file_ary = reArrayFiles($_FILES['ufile']);
foreach ($file_ary as $file) {
print 'File Name: ' . $file['name'];
print 'File Type: ' . $file['type'];
print 'File Size: ' . $file['size'];
}
}