public function submitConfigurationForm(array &$form, FormStateInterface $form_state): void {
$file = $form_state->getValue('firmware_upload');
$version = '6.6.6';
$timestamp = date('YmdHis');
$location = $form['firmware_upload']['#upload_location'];
$zipName = "$location/$version-$timestamp.zip";
$file = $this->fileRepository->move($file, $zipName, FileSystemInterface::EXISTS_REPLACE);
$zip = new \ZipArchive();
if ($zip->open($zipName, \ZIPARCHIVE::CREATE | \ZIPARCHIVE::OVERWRITE) === TRUE) {
$zip->extractTo($location);
$zip->close();
}
else {
throw new \Exception('Failed to open the ZIP file.');
}
$this->configuration['version'] = $version;
}
У меня есть этот код, но архив не распакован по местоположению, я вижу там только ZIP-файл. Я не уверен, как это правильно использовать.
Я попробовал приведенный выше код и некоторые его варианты, но не могу понять, почему извлечение zip-файла не работает.
$zip = new \ZipArchive(); if ($zip->open($zipName, \ZIPARCHIVE::CREATE | \ZIPARCHIVE::OVERWRITE) === TRUE) { $zip->extractTo($location); $zip->close(); } else { throw new \Exception('Failed to open the ZIP file.'); }
$this->configuration['version'] = $version; } [/code] У меня есть этот код, но архив не распакован по местоположению, я вижу там только ZIP-файл. Я не уверен, как это правильно использовать. Я попробовал приведенный выше код и некоторые его варианты, но не могу понять, почему извлечение zip-файла не работает.