Servlet gestionnaire de fichiers
Bonjour,
Je souhaite créer une servlet qui s'occuperait de distribuer des fichiers stockés sur le serveur Tomcat.
-> URL vers une servlet et pas un fichier directement -> controle
-> Log des téléchargements faits dans des tables SQL
Elle fonctionne sous firefox mais il y a un problème avec IE(7):
- Avec un .DOC
La boite "Téléchargement de fichiers" apparaît,
Ouvrir le fichier fonctionne.
Enregistrer sous ne fonctionne pas:
Un message apparaît "Internet explorer ne peut pas télécharger [nom servlet] de localhost.
Internet explorer n'a pas pu ouvrir ce site internet. le site requis n'est pas disponible ou n'a pas pu être trouvé. réessayer ultérieurement.
- Avec un .EXE, ce même message apparaît directement.
Voici la fonction de téléchargement de la servlet:
Code:
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
|
private void doDownload( HttpServletRequest req, HttpServletResponse resp, String filename ) throws Exception
{
resp.setContentType("application/octet-stream");
File f = new File(filename);
String disp = "attachment; filename="+ f.getName();
resp.setHeader("Content-Disposition", disp);
int length = (int)f.length(); resp.setContentLength(length);
OutputStream os = null;
InputStream is = null;
try
{
os = resp.getOutputStream();
FileInputStream stream = new FileInputStream(f);
BufferedInputStream bis = new BufferedInputStream(stream);
is = new BufferedInputStream(bis);
int count;
byte buf[] = new byte[4096];
while ((count = is.read(buf)) > -1)
{
os.write(buf, 0, count);
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
if(is!=null)
is.close();
if(os!=null)
{
os.flush();
os.close();
}
}
} |
Savez-vous ce qui n'est pas correct?
Merci.