Bonjour, je vous soumet ici quelque heures d’instances prises de tête après cette fichue durée J’espère que vous pourrez penser cette plaie
Je vous met ici une page test qui me permet d'uploader un fichier (image, son ...). Le cas qui m’intéresse ici est la vidéo, plus précisément les fichiers WMV.
Je me suis servit de ce tuto avec Jave que j'ai ré-adapté à ma jsp pour obtenir la durée, ainsi que de UploadBean pour la partie upload.
je suis actuellement en stage et j'utilise Eclispe EE et Tomcat. J'apprend le langage "sur le tas" et le résultat va surement vous paraître etre du gros bricolage .
Le but de cette page est d'uploader la vidéo, de récupérer les informations la concernant ( nom, type, poids et durée) pour ensuite affiché ces infos qui seront a terme transmise pour la base de donnée dont s'occupe mon co-stagiaire, et enfin de lire une vidéo en Streaming.
Les résultats que j'obtient pour la durée est la valeur d'initialisation de ma variable qui la contient. Alors que si le fichier est déjà présent dans le dossier "destination" (si j'uploade une deuxième fois la vidéo ) la durée s'affiche correctement.

Ma JSP.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 
<!-- Import des outils Java, UploadBeans, Jave et des exceptions -->
<%@ page language="java"
	import="javazoom.upload.*,java.util.*,javax.*,java.lang.*,it.sauronsoftware.jave.EncoderException,java.util.concurrent.TimeUnit,
	it.sauronsoftware.jave.Encoder,it.sauronsoftware.jave.EncoderException,it.sauronsoftware.jave.MultimediaInfo,
	it.sauronsoftware.jave.InputFormatException,java.io.File,sample.progress.MyUploadListener"%>
<%@ page errorPage="ExceptionHandler.jsp"%>
 
<!-- Configuration d'UploadBean -->
<jsp:useBean id="upListener" scope="session" class="sample.progress.MyUploadListener" />
<jsp:useBean id="upBean" scope="session" class="javazoom.upload.UploadBean">
	<jsp:setProperty name="upBean" property="folderstore"
		value="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT\StockVideo" />
	<jsp:setProperty name="upBean" property="parser" value="<%= MultipartFormDataRequest.CFUPARSER %>" />
	<jsp:setProperty name="upBean" property="parsertmpdir"
		value="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT\StockVideo\rep" />
	<jsp:setProperty name="upBean" property="overwritepolicy" value="nametimestamp" />
	<% upBean.addUploadListener(upListener); %>
 
</jsp:useBean>
 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="JavaScript"><!--
 
// Fonctions pour le pop-up de chargement
function openStatus()
{
  if (document.upform.uploadfile.value.length > 0)
  {
    window.open('status.jsp?nocache=<%= System.currentTimeMillis() %>','UploadStatus','scrollbars=no,status=no,width=360,height=90');
    document.upform.submit();
  }
  else
  {
    alert("Vous devez indiqué le chemin vers votre fichier");
  }
}
//--></script>
<script language="JavaScript"><!--
function endStatus()
{
	if (document.upform.uploadfile.value.ratio = 100)
}
//--></script>
<title>Upload et Visionnage</title>
 
</head>
<body>
 
<!--  Début du code Java -->
	<ul class="style1">
		<%
                        // requetes
                        if (MultipartFormDataRequest.isMultipartFormData(request)) {
                                Vector listeners = new Vector();
                                listeners.addElement(upListener);
                                String err = null;
                                MultipartFormDataRequest mrequest = null;
                                try {
                                        mrequest = new MultipartFormDataRequest(request, listeners);
                                } catch (Exception e) {
                                        // Cancel current upload (e.g. Stop transfert)
                                        upListener.cancel();
                                        err = e.getMessage();
                                }
        
                                //Déclarations 
                                File videoFile = null; //Fichier uploadé
                                String videoLength; //Chaine de charactéres indiquant le durée totale de la vidéo
                                String path = null; //Destination où est uploadé le fichier
                                Encoder encoder = new Encoder();
                                String todo = null;
 
                                //Champs et Bouton parcourir , upload du fichier
                                if (mrequest != null)
                                        todo = mrequest.getParameter("todo");
                                else throw new Exception(err);
                                if ((todo != null) && (todo.equalsIgnoreCase("upload"))) {
                                        Hashtable files = mrequest.getFiles();
                                        if ((files != null) && (!files.isEmpty())) {
                                                UploadFile file = (UploadFile) files.get("uploadfile");
        
                                                //Déclarations
                                                if (file != null)
                                                        
                                                path = "C://Program Files//Apache Software Foundation//Tomcat 6.0//webapps//ROOT//StockVideo//"
                                                                        + file.getFileName();
                                                videoFile = new File(path);
                                                String result = "ø";
                                                MultimediaInfo info = null;
                                                long r;
                                                
        
                                                //Obtention des informations de la vidéo et gestion des exceptions
                                                
                                                
                                                try {
                                                        info = encoder.getInfo(videoFile);
                                                        
                                                } catch (InputFormatException e) {
                                                        e.printStackTrace();
                                                } catch (EncoderException e) {
                                                        e.printStackTrace();
                                                }
                                                if (info != null) {
                                                // Obtention et mise en string de la durée
                                                        try
                                                {
                                                    boolean finished = false;
                                                    while (! finished)
                                                    {
                                                        r = info.getDuration();
                                                        result = String
                                                                        .format("%d min %02d sec",
                                                                                        TimeUnit.MILLISECONDS.toMinutes(r),
                                                                                        TimeUnit.MILLISECONDS.toSeconds(r)
                                                                                                        - TimeUnit.MINUTES
                                                                                                                        .toSeconds(TimeUnit.MILLISECONDS
                                                                                                                                        .toMinutes(r)));
 
                                                }
                                                                                if (result.equals("ø")){// Vérifie si la variable est toujours a sa valeur d'initialisation
                                                                                Thread.sleep (1000);} // En pause pour une seconde
                                                                                else finished = true;
                                                }
                                                catch (InterruptedException exception){}
                                                }
                                              //Affichage des infos a l'écran
                                                        
                                                        videoLength = result;
                                                
                                                out.println("<li> Upload de fichier éffectué. "
                                                                + " nom du fichier : " + file.getFileName()
                                                                + ", durée : " + videoLength + ", poids :"
                                                                + file.getFileSize() + " octets" + ", type : "
                                                                + file.getContentType());
                                                
                                                upBean.store(mrequest, "uploadfile");
                                        } else {
                                                out.println("<li>Pas de fichier uploadé");
                                        }
                                } else
                                        out.println("<BR> todo=" + todo);
                        }
                %>
	</ul>
<!-- Fin du code Java -->
 
 
 
<!-- Mise en page de la page HTML -->
 
	<form method="post" action="PagePrinc.jsp" name="upform" enctype="multipart/form-data" style="width: 50%;
		  margin: auto; background-color: #EDF7F2; padding-bottom: 15px;">
 
		<!-- Barre de titre -->
 
		<h2 style="text-align: center; color: white; background-color: #ADCF4F;">Upload de fichier</h2>
 
		<p>&nbsp;</p>
 
	<!-- Champs et Bouton parcourir pour l' upload du fichier -->
 
			<table width="60%" border="0" cellspacing="1" cellpadding="1"
				align="center" class="style1">
				<tr>
					<td align="left"><b>Séléctionnez le fichier à Uploader :</b></td>
				</tr>
				<tr>
			   		 <td align="left"> <input type="file" name="uploadfile" size="50"></td>
				</tr>
				<tr>
					<td align="center">
						<input type="hidden" name="todo" value="upload">
						<input type="button" name="Submit" value="Upload" onClick="openStatus()"> 
						<input type="reset" name="Reset" value="Cancel">
					</td>
				</tr>
			</table>
 
		<p>&nbsp;</p>
 
	<!-- Lecteur Windows Média player -->
 
		<p align="center">
			<object id="player"
				classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"
				style="width: 480px; height: 360px" type="application/x-mplayer2">
				<param name="url" value="http://127.0.0.1:8080/StockVideo/F005.wmv" />
				<param name="autoStart" value="False" />
				<param name="uiMode" value="full" />
			</object>
		</p>
 
	<!-- Bouton de mise en Plein écran du lecteur Vidéo -->
 
		<p align="center"><INPUT type=button value="Plein écran"
			name=FSBUTTON
			onclick=" if (player.playState == 3)  player.fullScreen = 'true'; "></p>
		<p align="center">( Pressez la touche &Eacute;chap pour revenir )</p>
 
	<!-- Notes -->
 
		<p align="center">&nbsp;</p>
		<p align="center">&nbsp;</p>
		<p align="center"><font size="-1" face="Courier New, Courier, mono">Copyright
		&copy; fait avec avec <a href="http://www.javazoom.net" target="_blank">JavaZOOM</a>
		- Mailly johan 2011</font></p>
 
	</form>
</body>
</html>
Voila, j’espère avoir été clair et vous avoir fourni les données dont vous aviez besoin.

EDIT: Vraiment personnes ? , si vous avez besoins de plus renseignements de ou si il y a là quelque chose de débile n' hésitez pas