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:
Savez-vous ce qui n'est pas correct?
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 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(); } } }
Merci.
Partager