Итак, я создаю временную папку для своих извлеченных ZIP-файлов на сервере.Я тестировал свой код в PHP 7, но, к сожалению, мне нужно было запустить этот код в PHP 5.6.25, а system.php не работает на php 5, я не знаю почему.
Мне нужно было создать временную папку и удалить ее после завершения кода, поэтому я сделал это.
<?php
require_once "System.php";
$tempdir = System::mktemp("-d prefix");
echo $tempdir;
// returns: /tmp/8e9MLi
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' || strtolower($name[1]) == 'xlsx' ? true : false;
if(!$continue) {
$message = "The file you are trying to upload is not a .zip or .csv file. Please try again.";
}
$target_path = $tempdir."\\".$filename; // change this to the correct site path
if(move_uploaded_file($source, $target_path)) {
if ($name[1] == 'zip'){
$zip = new ZipArchive();
$x = $zip->open($target_path);
if ($x === true) {
$zip->extractTo("C:/xampp/htdocs/zip"); // change this to the correct site path
if ($zip->open($target_path) == TRUE) {
for ($i = 0; $i < $zip->numFiles; $i++) {
$filename2 = $zip->getNameIndex($i);
$tmp_dir = $target_path.$filename2;
}
}
$zip->close();
$message = "Your .zip file was uploaded and unpacked.";
unlink($target_path);
}
}
$message = "Success!";
} else {
$message = "There was a problem with the upload. Please try again.";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
<?php if($message) echo "<p>$message</p>"; ?>
<form enctype="multipart/form-data" method="post" action="">
<label>Choose a zip file to upload: <input type="file" name="zip_file" /></label>
<br />
<input type="submit" name="submit" value="Upload" />
</form>
</body>
</html>
после запуска кода в php 5 появляется эта ошибка: Предупреждение: require_once (System.php): не удалось открыть поток: нет такого файла или каталога в C: \ wamp64 \ www \ zip \ index.php в строке 2 AND Неустранимая ошибка: require_once (): Не удалось открыть 'System.php' (include_path = '.; C: \ php \ pear') в C: \ wamp64 \ www \ zip \ index.php в строке 2
.лучшая идея?