phpでPhpSpreadsheetを使い、Excelを起動せず内容を読み取り、最終的にMySQLに登録したい。
社内環境ではExcelの内容をブラウザに表示までできております
php
1$filePath = 'z:\◆勤怠(KANSAI)\'.$corporation_folder.'\'. $short_code.$short_nendo.'.xlsx'; 2 3$book = $xlsx->load( $filePath); 4 5 // 明細シートを選択 6 $sheet = $book->getSheetByName($sheet_name); 7 8 if($sheet->getCell("P1")->getValue()=="明細書"){ 9 //読み込んだExcelの行数取得 10 $count_rows=$sheet->getHighestRow(); 11 // print $_SERVER['HTTP_HOST']; 12 // 全てのセルを取り出して表示 13 for ($i = 1,$x=0; $i < $count_rows; ++$i,++$x) { 14 //就業先名チェック 15 if($sheet->getCell("E".$i)->getValue()<>""){ 16 // 【支給】------------------------------------------------------------------------------ 17 //1行目 18 $meisai_data['企業No'][$x] = $sheet->getCell("C".$i)->getValue(); //企業no 19・・・
ですが外部からWebにて接続するとエラーとなります。
DB_HOST_IPADDRESSや.realpath("../../")、dirname( FILE , 6)などを使用して上層までのフォルダを見て、フルパスの設定はしているのですが、読み取りできません。
ちなみに外部または社内どちらもIPアドレスで指定する必要はないのでしょうか
エラーは
php
1Fatal error: Uncaught InvalidArgumentException: File "***.**.**.***/y:\BSSYSTEM\KI(*****)/KI202111.xlsx" does not exist. in Y:\BSSYSTEM\htdocs\bssystem\excel\vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Shared\File.php:137 Stack trace: #0 Y:\BSSYSTEM\htdocs\bssystem\excel\vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Reader\Xlsx.php(344): PhpOffice\PhpSpreadsheet\Shared\File::assertFile('http://118.22.5...') #1 Y:\BSSYSTEM\htdocs\bssystem\database_ck.php(719): PhpOffice\PhpSpreadsheet\Reader\Xlsx->load('****.**.**...') #2 {main}
社内からも外部からも接続できるディレクトリパスの設定方法をご指導願います。
宜しくお願いいたします
追記…
ちなみに社内から読み取りできてブラウザ表示できたディレクトリパスは下記のパスになります
$filePath = 'z:\◆勤怠(KANSAI)'.$corporation_folder.''. $short_code.$short_nendo.'.xlsx';
ですが外部から接続するとエラーとなります。
宜しくお願いいたします
回答1件
あなたの回答
tips
プレビュー