Projet

Général

Profil

Paste
Télécharger (2,22 ko) Statistiques
| Branche: | Révision:

root / genererPano.php @ 1c16578c

1
<!DOCTYPE html>
2
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
3
<head>
4
  <meta http-equiv="Content-type" content="text/html; charset=UTF-8"/>
5
  <link type="image/x-icon" rel="shortcut icon" href="images/tsf.png"/>
6
  <title>convertiseur image vers panorama</title>
7
</head>
8

    
9
<?php
10
require 'class/utils.class.php';
11
utils::init();
12
if (isset($_GET['name'])) {
13
  $pano_name = $_GET['name'];
14
  $pano_basename = preg_replace('/\.[^.]+$/', '', $pano_name);
15
  
16
  //Partie exécutante du script gen_tiles qui gènere les tuiles à partir d'une image.
17
  $panos_dir = 'tiles';
18
  $pano_dest = $panos_dir.'/'.$pano_basename;
19
  if (! is_dir($panos_dir)) {
20
    if (! mkdir($panos_dir)) {
21
        echo "<p class=\"error\">le répertoire \"$panos_dir\" n'est pas accessible et ne peut être créé</p>\n";
22
    }
23
  } else if (file_exists($pano_dest)) {
24
    echo "<p class=\"error\">le nom de répertoire \"$pano_dest\" est déjà pris</p>\n";
25
  } else {
26
    mkdir($pano_dest);
27
    $escaped_command = escapeshellcmd('./to_tiles/gen_tiles.sh -p '.$pano_dest.'/'.$pano_basename.' ./upload/'.$pano_name);
28
                
29
    printf("<h2>Exécution de la commande :</h2>\n<p class=\"cmd\"><samp>%s</samp></p>\n<pre>", htmlspecialchars($escaped_command));
30
    if ($fp = popen($escaped_command, 'r')) {
31
      while (!feof($fp)) {
32
        //set_time_limit (20); 
33
        $results = fgets($fp, 4096);
34
        if (strlen($results) == 0) {
35
          // stop the browser timing out
36
          flush();
37
        } else {
38
          $tok = strtok($results, "\n");
39
          while ($tok !== false) {
40
            echo htmlspecialchars(sprintf("%s\n",$tok))."<br/>";
41
            flush(); 
42
            $tok = strtok("\n");
43
          }
44
        }
45
      }
46
      print("</pre>\n");
47
      if (pclose($fp) === 0) {
48
        print("<h4><span class=\"success\">Opération réussie</span></h4>\n");
49
        printf("<p>Pour acceder directement au panorama <a href=\"panorama.php?dir=%s&amp;panorama=%s\">cliquer ici</a></p>\n", 
50
               $panos_dir, $pano_basename);
51
      } else {
52
        print("<h4><span class=\"error\">Opération en échec durant l'exécution du script !</span></h4>\n");
53
      }
54
    } else {
55
      print("<h4><span class=\"error\">Opération en échec à l'ouverture du script !</span></h4>\n");
56
    }
57
  }
58
  print("<p>Pour acceder à la liste des panoramas <a href=\".\">cliquer ici</a></p>\n") ;
59
}
60
?>