Révision 0bd646e4
Ajouté par Victor PONGNIAN il y a environ 11 ans
envoyer.php | ||
---|---|---|
1 |
<?php $uid = md5(uniqid(rand())); ?> |
|
2 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
|
1 |
<!DOCTYPE html> |
|
3 | 2 |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> |
4 |
<head> |
|
5 |
|
|
6 |
<meta http-equiv="Content-type" content="text/html; charset=UTF-8"/> |
|
7 |
<link type="image/x-icon" rel="shortcut icon" href="images/tsf.png"/> |
|
8 |
<link rel="stylesheet" media="screen" href="css/view.css" /> |
|
9 |
<title>Upload d'une image sur le serveur !</title> |
|
10 |
<!-- suivi de l'upload par ajax. Peut être utile pour certains navigateurs qui ne renseigne pas l'avancement. |
|
11 |
<script type="text/javascript"> |
|
12 |
var HttpRequestObject = false; |
|
13 |
if(window.XMLHttpRequest) { |
|
14 |
HttpRequestObject = new XMLHttpRequest(); |
|
15 |
} |
|
16 |
else if(window.ActiveXObject) { |
|
17 |
HttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP"); |
|
18 |
} |
|
19 |
|
|
20 |
function startProgress(uid) { |
|
21 |
|
|
22 |
|
|
23 |
<!--document.getElementById('upload').style.display = 'none';--> |
|
24 |
document.getElementById('pb_outer').style.display = 'block'; |
|
25 |
setTimeout('getProgress("' + uid + '")', 1000); |
|
26 |
|
|
27 |
|
|
28 |
|
|
29 |
} |
|
30 |
function getProgress(uid) { |
|
31 |
if(HttpRequestObject) { |
|
32 |
HttpRequestObject.open('GET', 'getprogress.php?uid=' + uid, true); |
|
33 |
HttpRequestObject.onreadystatechange = function() { |
|
34 |
if(HttpRequestObject.readyState == 4 && HttpRequestObject.status == 200) { |
|
35 |
var response = HttpRequestObject.responseText; |
|
36 |
var elem = response.split('#'); |
|
37 |
var progress = elem[0]; |
|
38 |
var url =elem[1]; |
|
39 |
var message=elem[2]; |
|
40 |
|
|
41 |
document.getElementById('pb_inner').style.width = progress + '%'; |
|
42 |
document.getElementById('pb_inner').innerHTML = progress + '%'; |
|
43 |
|
|
44 |
if(progress < 100) { |
|
45 |
|
|
46 |
setTimeout('getProgress("' + uid + '")', 100); |
|
47 |
|
|
48 |
} else { |
|
49 |
if(message !=='') { |
|
50 |
document.getElementById('pb_outer').style.display = 'none'; |
|
51 |
document.getElementById('pb_inner').style.width = 'none'; |
|
52 |
alert(message); |
|
53 |
} else { |
|
54 |
document.getElementById('pb_inner').innerHTML = 'Upload Complete!'; |
|
55 |
document.location.href= url; |
|
56 |
} |
|
57 |
} |
|
58 |
} |
|
59 |
} |
|
60 |
|
|
61 |
HttpRequestObject.send(null); |
|
62 |
} |
|
63 |
} |
|
64 |
|
|
65 |
function showLoader() { |
|
66 |
document.getElementById('loader').innerHTML = "Veuillez patienter ... "; |
|
67 |
|
|
68 |
|
|
69 |
} |
|
70 |
|
|
71 |
</script> |
|
72 |
</head> |
|
73 |
<body id="main_body"> |
|
74 |
<img id="top" src="images/top.png" alt=""> |
|
75 |
<div id="form_container"> |
|
76 |
<h1><img src="images/tetaneutral.png"></h1> |
|
77 |
|
|
78 |
<form onSubmit="startProgress('<?php echo $uid; ?>');" action="uploadTest.php" method="post" class="appnitro" enctype="multipart/form-data" name="upload" id="upload" target="upload_frame"> |
|
79 |
<h2>Ajouter un nouveau panorama</h2> |
|
80 |
|
|
81 |
<ul> |
|
82 |
<li id="li_1" > |
|
83 |
<label for="file" class="description">Envoyer le fichier :</label> |
|
84 |
<div> |
|
85 |
<input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value="<?php echo $uid; ?>" /> |
|
86 |
<input type="file" name="file" id="file" /> |
|
87 |
</div> |
|
88 |
</li> |
|
89 |
|
|
90 |
<li class="buttons"> |
|
91 |
<input type="submit" name="submit" id="submit" value="Submit" /> |
|
92 |
</li> |
|
93 |
</ul> |
|
94 |
</form> |
|
95 |
<!-- Fin du formulaire --> |
|
96 |
<div id="footer"> |
|
97 |
<a href="./index.php">Retour liste</a> |
|
98 |
</div> |
|
99 |
</div> |
|
100 |
<div id="infoSize"> |
|
101 |
<img src="images/bulle.png" id="bulle"/> |
|
102 |
<label id="txtInfo">Le fichier à envoyer doit etre une image de type .tif ou .jpeg<br /> |
|
103 |
Taille maximale : 300 Mo</label> |
|
104 |
</div> |
|
105 |
<!-- Barre d'upload --> |
|
106 |
<div id="pb_outer"> |
|
107 |
<div id="pb_inner"></div> |
|
108 |
</div> |
|
109 |
<p id="info"></p> |
|
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 |
<link rel="stylesheet" media="screen" href="css/view.css" /> |
|
7 |
<title>Envoi d'une image sur le serveur</title> |
|
8 |
</head> |
|
9 |
<body id="main_body"> |
|
10 |
<img id="top" src="images/top.png" alt=""> |
|
11 |
<div id="form_container"> |
|
12 |
<h1><img src="images/tetaneutral.svg"></h1> |
|
13 |
<form action="uploadReceive.php" method="post" enctype="multipart/form-data" id="upload"> |
|
14 |
<h2>Ajouter un nouveau panorama</h2> |
|
15 |
<ul> |
|
16 |
<li id="li_1" > |
|
17 |
<label for="file" class="description">Envoyer le fichier :</label> |
|
18 |
<div> |
|
19 |
<input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value="panoramas"/> |
|
20 |
<input type="file" name="files[]" id="file" multiple="multiple" |
|
21 |
title="Le fichier à envoyer doit être une image de taille maximale 300 Mo"/> |
|
22 |
</div> |
|
23 |
</li> |
|
110 | 24 |
|
111 |
<iframe style="display: none" id="upload_frame" name="upload_frame"></iframe> |
|
112 |
|
|
113 |
<?php |
|
114 |
|
|
115 |
/******************************************************************* |
|
116 |
* Permet d'afficher l'image uploadée sur le serveur |
|
117 |
*******************************************************************/ |
|
118 |
|
|
119 |
if(isset($_GET['img']) && isset($_GET['dir'])){ |
|
120 |
|
|
121 |
apc_delete('link'); // Suppression de la variable cache. |
|
122 |
|
|
123 |
$image_name = htmlspecialchars($_GET['img']); |
|
124 |
$dir_image = htmlspecialchars($_GET['dir']); |
|
125 |
|
|
126 |
$basename = basename($_GET['img']); |
|
127 |
$filePartArr = explode('.', $basename); |
|
128 |
$ext = $filePartArr[count($filePartArr) - 1]; |
|
129 |
if($ext=="tif"){ |
|
130 |
$basename = basename($_GET['img'],".tif"); |
|
131 |
}else if($ext=="jpeg"){ |
|
132 |
$basename = basename($_GET['img'],".jpeg"); |
|
133 |
} else { |
|
134 |
$basename = basename($_GET['img'],".jpg"); |
|
135 |
} |
|
136 |
//Permet d'afficher l'image après uptload ( Conversion des .tiff et .jpg pour affichage dans le navigateur ) |
|
137 |
$input = 'convert /var/www/data/tsf2/vpongnian/panorama/upload/'.$_GET['img'].' -resize 10% /var/www/data/tsf2/vpongnian/panorama/upload/'.$basename.'.jpg'; // Adapter les chemins absolus ou relatifs |
|
138 |
$escaped_command = escapeshellcmd($input); |
|
139 |
$output = shell_exec($escaped_command); |
|
140 |
echo "<pre>$output</pre>\n"; |
|
141 |
|
|
142 |
?><div id="genererPano"> |
|
143 |
<form enctype="multipart/form-data" action="<?php echo "envoyer.php"/*htmlspecialchars($_SERVER['PHP_SELF'])*/; ?>" method="post" onSubmit="showLoader()"> |
|
144 |
<p> |
|
145 |
<label id="l_generer" for="no" title="Génerer le panoramique">Generer le panoramique :</label> |
|
146 |
<input type="hidden" name="image_name" value="<?php echo $image_name; ?>" /> |
|
147 |
<input type="submit" name="no" value="pas maintenant"/> |
|
148 |
<input type="submit" name="yes" value="oui" /> |
|
149 |
<label id="loader"></label> |
|
150 |
</p> |
|
151 |
</form> |
|
152 |
</div> |
|
153 |
<?php |
|
154 |
|
|
155 |
echo "<img src=/data/tsf2/vpongnian/panorama/upload/".$basename.".jpg id='imageUpload'/>"; |
|
156 |
} |
|
157 |
if (isset($_POST['no'])) { |
|
158 |
header("Location: ./index.php"); /* Redirection du navigateur */ |
|
159 |
exit; |
|
160 |
} |
|
161 |
if (isset($_POST['yes'])) { |
|
162 |
header("Location: ./genererPano.php?name=".$_POST['image_name']); |
|
163 |
exit; |
|
164 |
} |
|
165 |
?> |
|
166 |
|
|
25 |
<li class="buttons"> |
|
26 |
<input type="submit" name="submit" id="submit" value="Submit" /> |
|
27 |
</li> |
|
28 |
</ul> |
|
29 |
</form> |
|
30 |
<!-- Fin du formulaire --> |
|
31 |
<div id="footer"> |
|
32 |
<a href="./index.php">Retour liste</a> |
|
33 |
</div> |
|
34 |
</div> |
|
167 | 35 |
</body> |
168 |
</html> |
|
36 |
</html> |
Formats disponibles : Unified diff
remise en forme du travail de Victor Pongnian suit à son stage
Il reste pas mal de cosmétique à revoir mais le système devrait déjà être utilisable dans l'état.