Я пытаюсь запустить скрипт, который позволяет загружать .zip и извлекать содержимое.Я взял образец кода онлайн, который должен работать, и добавил класс в начале, потому что мой провайдер не имеет правильно скомпилированной функции zip.
Я оставил большой комментарий в серединегде я застреваюНе уверен, что это как-то связано с тем, что он работает на IIS?
.zip-файл загружается туда, куда я ожидал, и я могу вручную вернуть его обратно и извлечь файлы.Я хочу извлечь файлы здесь, зациклить их, если это файлы изображений, а затем добавить их в базу данных галерей изображений ... хотя обо всем по порядку.Нужно понять, почему я не вижу содержимое почтового индекса ...
<?php // need this bc of ISP settings
require($_SERVER['DOCUMENT_ROOT']."/_classes/ZipArchive.php");
?><?php
if($_FILES["zip_file"]["name"]) {
$filename = $_FILES["zip_file"]["name"];
$source = $_FILES["zip_file"]["tmp_name"];
$type = $_FILES["zip_file"]["type"];
$name = explode(".", $filename);
$accepted_types = array('application/zip', 'application/x-zip-compressed', 'multipart/x-zip', 'application/x-compressed');
foreach($accepted_types as $mime_type) {
if($mime_type == $type) {
$okay = true;
break;
}
}
$continue = strtolower($name[1]) == 'zip' ? true : false;
if(!$continue) {
$message = "The file you are trying to upload is not a .zip file. Please try again.";
}
// I set up the _TEST dir with 777 permissions
$target_path = $_SERVER['DOCUMENT_ROOT']."/_TEST/".$filename;
if(move_uploaded_file($source, $target_path)) {
$zip = new ZipArchive();
$x = $zip->open($target_path);
// **********************************************************
// $x returns an error here
// code: ER_OPEN
// http://php.net/manual/en/function.ziparchive-open.php
// Not sure why?????
// **********************************************************
if ($x === true) {
$zip->extractTo($_SERVER['DOCUMENT_ROOT']."/_TEST/");
$zip->close();
unlink($target_path);
$message = "Your .zip file was uploaded and unpacked.";
}
else {
$message = 'failed';
}
} else {
$message = "There was a problem with the upload. Please try again.";
}
}
?>