Mój bieżący projekt CI obsługuje teraz pliki. Chcę przesłać xls | pliki xlsx na serwer, a następnie zaimportuj dane pliku excela do tabeli bazy danych.PHP - Codeigniter: Uncaught wyjątek "PHPExcel_Reader_Exception" z komunikatem "Nie można otworzyć do odczytu, plik nie istnieje
jak w pierwszej części, plik przesłany był udany, a ja wgrać pliki do folderuprzesłane w takim samym poziomie aplikacji, systemu, aktywa. teraz chcę załadować ten plik i zaimportować jego zawartość do DB. Używam PHPExcel wykonywania tej operacji
Oto mój kontroler
$this->load->library('phpexcel');
$this->load->library('PHPExcel/iofactory');
$objPHPExcel = new PHPExcel();
$objReader= IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel=$objReader->load(BASE_URL().'uploads/Data_Report.xls');
$objWorksheet=$objPHPExcel->setActiveSheetIndex(0);
$this->load->model('datas_model');
for($i=2;$i<=77;$i++) {
$client_name= $objWorksheet->getCellByColumnAndRow(0,$i)->getValue();
$client_address= $objWorksheet->getCellByColumnAndRow(1,$i)->getValue();
$data_inp=array('name'=>$client_name, 'address'=>$client_address);
$this->datas_model->add_data($data_inp);
}
i tu jest moim zdaniem
<?php echo form_open_multipart('../settings_controller/upload_data/do_upload');?>
<div class="custom-file-upload">
<input type="file" id="file" name="userfile" multiple/>
</div>
<div class="button-container-2">
<button class="btn btn-primary" id="updown-btn" type="submit" style="height:45px;">Upload </button>
</div>
<?php echo "</form>"?>
kiedy biegnę to pokazuje mi błąd Uncaught exception 'PHPExcel_Reader_Exception' with message 'Could not open http://localhost/myproject/uploads/Data_Report.xls for reading! File does not exist.'
kiedy umieszczam ten plik Data_Report.xls wewnątrz htdocs, to wo rks z powodzeniem.
Problem występuje, gdy używam BASE_URL(). 'Uploads/Data_Report.xls'. ale plik fizycznie istnieje i został zweryfikowany przez wklejenie pliku localhost/myproject/uploads/Data_Report.xls na adres url i został pomyślnie pobrany.
Każda pomoc zostanie bardzo doceniona.
teraz otrzymuję rozwiązanie, gdy poda się względną ścieżkę, usuwając element base_url.ale czy jest to właściwa metoda rozwiązania tego problemu? ponieważ nie używa base_url.? więc jest jakikolwiek problem w przyszłości (hosting) –
zaktualizowałem moją odpowiedź na nie hardcoding absolutną ścieżkę, i powiedz mi, czy to działa –
tak to już działa po wypróbowaniu ./myproject/uploads/Data_Report.xls bez BASE_URL() –