Таблица - Неперехваченное исключение InvalidArgumentException: файл "file.xlsx" не существует - PullRequest
1 голос
/ 06 мая 2020

Я загружаю файл xlsx в папку, а затем читаю его, чтобы вставить информацию в базу данных, однако плагин электронных таблиц не находит файл, он попадает в папку, которая не имеет смысла, ниже приведен код, Я использую.

Правильный путь к файлу: arquivosRetorno / file.xlsx, но он ищет в PHP Неустранимая ошибка: Uncaught InvalidArgumentException: файл «file.xlsx» не существует. в /vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/File.php:137

$allowed_extension = array('xls', 'csv', 'xlsx');
$file_array = explode(".", $_FILES["arquivo"]["name"]);
$file_extension = end($file_array);
if(in_array($file_extension, $allowed_extension)){
    $file_name = time() . '.' . $file_extension;
    move_uploaded_file($_FILES['arquivo']['tmp_name'], 'arquivosRetorno/'.$file_name);

    $file_type = \PhpOffice\PhpSpreadsheet\IOFactory::identify($file_name);
    $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($file_type);

    $spreadsheet = $reader->load($file_name);
    unlink($file_name);
    $data = $spreadsheet->getActiveSheet()->toArray();
    foreach($data as $row){
        if($row[5] > 0){
            $numeroIdentificacaoContribuicoes = $row[5];
            $situacao = trim($row[7]);
            $dataBaixaLiquidacao = trim($row[2]);
            $dataPedacos = explode("/",$dataBaixaLiquidacao);
            $dataBD = $dataPedacos[2]."-".$dataPedacos[1]."-".$dataPedacos[0];
            if($row[5]>40107){
                if ($numeroIdentificacaoContribuicoes != null || $numeroIdentificacaoContribuicoes != '') {
                    $bd->SQL = "SELECT * FROM entradas WHERE id2 = ".$numeroIdentificacaoContribuicoes;
                    $bd->Executa();
                    $status = $bd->Regs[0]["status"];
                    if ($situacao == 'Liquidado') {
                        if($status == "" || $status == "boleto nao foi pago" || $status == null){
                            $bd->SQL = "UPDATE entradas SET status = 'boleto pago', data_boleto = '".$dataBD."' WHERE id2 = ".$numeroIdentificacaoContribuicoes."";
                            $bd->Executa();
                            $bd2->SQL = "UPDATE transacoes SET status_transacao = '9995' WHERE numeropedido = ".$numeroIdentificacaoContribuicoes."";
                            $bd2->Executa();
                        }

                    }else{
                        if($status != "boleto pago"){
                            $bd->SQL = "UPDATE entradas SET status = 'boleto nao foi pago', data_boleto = '".$dataBD."' WHERE id2 = ".$numeroIdentificacaoContribuicoes."";
                            $bd->Executa();
                            echo "<br>";
                            echo $bd2->SQL = "UPDATE transacoes SET status_transacao = '9994' WHERE numeropedido = ".$numeroIdentificacaoContribuicoes."";
                            $bd2->Executa();
                        }
                    }
                }       
           }
        }
    }
    $message = '<div class="alert alert-success">Arquivo importado com sucesso</div>';
}else{
    $message = '<div class="alert alert-danger">Apenas arquivos .xls .csv or .xlsx são aceitos</div>';
}

1 Ответ

1 голос
/ 07 мая 2020

Измените вызов на:

$reader->load($file_name)

на:

$reader->load('arquivosRetorno/' . $file_name)

...