Oczywiście, że nie chcę dlatego przed próbą utworzenia będę sprawdzał czy istnieje miniaturka.
Wymyśliłem coś takiego, jak myślicie to będzie dobry sposób?
Tylko mam jeden problem nie wiem jak zrobić aby przy każdym przeładowaniu skryptu pokazywało się ile jest już utworzonych miniatur. Zmienna $output nie chce się wyświetlić.
Może zamiast header użyć javascriptu?
<?php
// liczy pliki
$i = 0;
while (false !== ($file = readdir($dir))) { if ($file !== "." && $file !== ".." && isset($info['extension']) && $info['extension'] == "jpg") { $i++;
}
}
// liczy miniaturki
$a = 0;
while (false !== ($file = readdir($dir))) { if ($file !== "." && $file !== ".." && isset($info['extension']) && $info['extension'] == "jpg") { $a++;
}
}
// jeśli liczba plików i miniatur nie jest równa uruchamia skrypt
if ($i !== $a) {
$output = 'Utworzono: ' . $a . ' z ' . $i . ' miniatur. Proszę czekać...';
$z = 0;
// tworzenie miniatur
// pętla co 5 utworzonych miniatur ładuje skrypt od nowa
while (false !== ($file = readdir($dir)) && $z < 5
) {
// sprawdza czy plik nie jest katalogiem i posiada rozszerzenie .jpg
if ($file !== "." && $file !== ".." && isset($info['extension']) && $info['extension'] == "jpg") {
// jeśli miniaturka nie istnieje tworzy ją
if (!file_exists('cache/' . $info['filename'] . '-t.jpg')) { $img = imagecreatefromjpeg('export/movies/' . $file);
$width = imagesx($img);
$height = imagesy($img);
$new_width = 200;
$new_height = 280;
$img_temp = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($img_temp, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagejpeg($img_temp, 'cache/' . $info['filename'] . '-t.jpg', 80);
imagedestroy($img);
imagedestroy($img_temp);
$z++;
}
}
}
$output.= '<script language="JavaScript"> window.location ="test.php";</script>';
} else {
$output = 'Tworzenie miniatur zakończone, utworzono ' . $a . ' z ' . $i . ' miniatur.';
}
?>
<html>
<head>
<title>Panel admin</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link type="text/css" href="css/style.css" rel="stylesheet" media="all" />
</head>
<body>
</body>
</html>
edit:
Lepsze okazało się przekierowanie javascript ładnie pokazuje ile zostało do końca tworzenia miniatur. Pozostaje pytanie czy cały ten skrypt jest mądrym rozwiązaniem.