@@ -1049,7 +1049,7 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet
1049
1049
$ hyperlinkReader = new Hyperlinks ($ docSheet );
1050
1050
// Locate hyperlink relations
1051
1051
$ relationsFileName = dirname ("$ dir/ $ fileWorksheet " ) . '/_rels/ ' . basename ($ fileWorksheet ) . '.rels ' ;
1052
- if ($ zip ->locateName ($ relationsFileName )) {
1052
+ if ($ zip ->locateName ($ relationsFileName ) !== false ) {
1053
1053
$ relsWorksheet = $ this ->loadZip ($ relationsFileName , Namespaces::RELATIONSHIPS );
1054
1054
$ hyperlinkReader ->readHyperlinks ($ relsWorksheet );
1055
1055
}
@@ -1066,7 +1066,7 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet
1066
1066
if (!$ this ->readDataOnly ) {
1067
1067
// Locate comment relations
1068
1068
$ commentRelations = dirname ("$ dir/ $ fileWorksheet " ) . '/_rels/ ' . basename ($ fileWorksheet ) . '.rels ' ;
1069
- if ($ zip ->locateName ($ commentRelations )) {
1069
+ if ($ zip ->locateName ($ commentRelations ) !== false ) {
1070
1070
$ relsWorksheet = $ this ->loadZip ($ commentRelations , Namespaces::RELATIONSHIPS );
1071
1071
foreach ($ relsWorksheet ->Relationship as $ elex ) {
1072
1072
$ ele = self ::getAttributes ($ elex );
@@ -1128,7 +1128,7 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet
1128
1128
$ drowingImages = [];
1129
1129
$ VMLDrawingsRelations = dirname ($ relPath ) . '/_rels/ ' . basename ($ relPath ) . '.rels ' ;
1130
1130
$ vmlDrawingContents [$ relName ] = $ this ->getSecurityScannerOrThrow ()->scan ($ this ->getFromZipArchive ($ zip , $ relPath ));
1131
- if ($ zip ->locateName ($ VMLDrawingsRelations )) {
1131
+ if ($ zip ->locateName ($ VMLDrawingsRelations ) !== false ) {
1132
1132
$ relsVMLDrawing = $ this ->loadZip ($ VMLDrawingsRelations , Namespaces::RELATIONSHIPS );
1133
1133
foreach ($ relsVMLDrawing ->Relationship as $ elex ) {
1134
1134
$ ele = self ::getAttributes ($ elex );
@@ -1192,7 +1192,7 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet
1192
1192
if (isset ($ drowingImages [$ fillImageRelId ])) {
1193
1193
$ objDrawing = new \PhpOffice \PhpSpreadsheet \Worksheet \Drawing ();
1194
1194
$ objDrawing ->setName ($ fillImageTitle );
1195
- $ imagePath = str_replace ('../ ' , 'xl/ ' , $ drowingImages [$ fillImageRelId ]);
1195
+ $ imagePath = str_replace ([ '../ ' , ' /xl/ ' ] , 'xl/ ' , $ drowingImages [$ fillImageRelId ]);
1196
1196
$ objDrawing ->setPath (
1197
1197
'zip:// ' . File::realpath ($ filename ) . '# ' . $ imagePath ,
1198
1198
true ,
@@ -1249,7 +1249,7 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet
1249
1249
if ($ vmlHfRidAttr !== null && isset ($ vmlHfRidAttr ['id ' ])) {
1250
1250
$ vmlHfRid = (string ) $ vmlHfRidAttr ['id ' ][0 ];
1251
1251
}
1252
- if ($ zip ->locateName (dirname ("$ dir/ $ fileWorksheet " ) . '/_rels/ ' . basename ($ fileWorksheet ) . '.rels ' )) {
1252
+ if ($ zip ->locateName (dirname ("$ dir/ $ fileWorksheet " ) . '/_rels/ ' . basename ($ fileWorksheet ) . '.rels ' ) !== false ) {
1253
1253
$ relsWorksheet = $ this ->loadZipNoNamespace (dirname ("$ dir/ $ fileWorksheet " ) . '/_rels/ ' . basename ($ fileWorksheet ) . '.rels ' , Namespaces::RELATIONSHIPS );
1254
1254
$ vmlRelationship = '' ;
1255
1255
@@ -1328,7 +1328,7 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet
1328
1328
if (substr ($ drawingFilename , 0 , 8 ) === '/xl//xl/ ' ) {
1329
1329
$ drawingFilename = substr ($ drawingFilename , 5 );
1330
1330
}
1331
- if ($ zip ->locateName ($ drawingFilename )) {
1331
+ if ($ zip ->locateName ($ drawingFilename ) !== false ) {
1332
1332
$ relsWorksheet = $ this ->loadZipNoNamespace ($ drawingFilename , Namespaces::RELATIONSHIPS );
1333
1333
$ drawings = [];
1334
1334
foreach ($ relsWorksheet ->Relationship as $ ele ) {
@@ -2095,7 +2095,7 @@ private static function getLockValue(SimpleXmlElement $protection, string $key):
2095
2095
private function readFormControlProperties (Spreadsheet $ excel , string $ dir , string $ fileWorksheet , Worksheet $ docSheet , array &$ unparsedLoadedData ): void
2096
2096
{
2097
2097
$ zip = $ this ->zip ;
2098
- if (! $ zip ->locateName (dirname ("$ dir/ $ fileWorksheet " ) . '/_rels/ ' . basename ($ fileWorksheet ) . '.rels ' )) {
2098
+ if ($ zip ->locateName (dirname ("$ dir/ $ fileWorksheet " ) . '/_rels/ ' . basename ($ fileWorksheet ) . '.rels ' ) === false ) {
2099
2099
return ;
2100
2100
}
2101
2101
@@ -2122,7 +2122,7 @@ private function readFormControlProperties(Spreadsheet $excel, string $dir, stri
2122
2122
private function readPrinterSettings (Spreadsheet $ excel , string $ dir , string $ fileWorksheet , Worksheet $ docSheet , array &$ unparsedLoadedData ): void
2123
2123
{
2124
2124
$ zip = $ this ->zip ;
2125
- if (! $ zip ->locateName (dirname ("$ dir/ $ fileWorksheet " ) . '/_rels/ ' . basename ($ fileWorksheet ) . '.rels ' )) {
2125
+ if ($ zip ->locateName (dirname ("$ dir/ $ fileWorksheet " ) . '/_rels/ ' . basename ($ fileWorksheet ) . '.rels ' ) === false ) {
2126
2126
return ;
2127
2127
}
2128
2128
@@ -2142,8 +2142,9 @@ private function readPrinterSettings(Spreadsheet $excel, string $dir, string $fi
2142
2142
$ rId = $ rId . 'ps ' ; // rIdXXX, add 'ps' suffix to avoid identical resource identifier collision with unparsed vmlDrawing
2143
2143
}
2144
2144
$ unparsedPrinterSettings [$ rId ] = [];
2145
- $ unparsedPrinterSettings [$ rId ]['filePath ' ] = self ::dirAdd ("$ dir/ $ fileWorksheet " , $ printerSettings ['Target ' ]);
2146
- $ unparsedPrinterSettings [$ rId ]['relFilePath ' ] = (string ) $ printerSettings ['Target ' ];
2145
+ $ target = (string ) str_replace ('/xl/ ' , '../ ' , (string ) $ printerSettings ['Target ' ]);
2146
+ $ unparsedPrinterSettings [$ rId ]['filePath ' ] = self ::dirAdd ("$ dir/ $ fileWorksheet " , $ target );
2147
+ $ unparsedPrinterSettings [$ rId ]['relFilePath ' ] = $ target ;
2147
2148
$ unparsedPrinterSettings [$ rId ]['content ' ] = $ this ->getSecurityScannerOrThrow ()->scan ($ this ->getFromZipArchive ($ zip , $ unparsedPrinterSettings [$ rId ]['filePath ' ]));
2148
2149
}
2149
2150
unset($ unparsedPrinterSettings );
@@ -2238,7 +2239,7 @@ private function readTablesInTablesFile(
2238
2239
$ tablePartRel = (string ) $ relation ['id ' ];
2239
2240
$ relationsFileName = dirname ("$ dir/ $ fileWorksheet " ) . '/_rels/ ' . basename ($ fileWorksheet ) . '.rels ' ;
2240
2241
2241
- if ($ zip ->locateName ($ relationsFileName )) {
2242
+ if ($ zip ->locateName ($ relationsFileName ) !== false ) {
2242
2243
$ relsTableReferences = $ this ->loadZip ($ relationsFileName , Namespaces::RELATIONSHIPS );
2243
2244
foreach ($ relsTableReferences ->Relationship as $ relationship ) {
2244
2245
$ relationshipAttributes = self ::getAttributes ($ relationship , '' );
0 commit comments