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
   |    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        if(request.getParameter("idMessage")!=null) {
            Membre membre=new Membre();
            membre.testConnecte(request);
            long idMembre=membre.getId();
            if(idMembre!=0) {
                long idMessage=Long.parseLong(request.getParameter("idMessage"));
                Document document=new Document();
                document.initDL(idMessage, idMembre);
                if(document.getIdMessage()!=0) {
                    String filename=Datas.DIR+"documents/"+document.getIdMessage()+document.getExtension();
                    File file=new File(filename);
                    if(file.exists()) {
                        try {
                            String filenameDL="doc-"+document.getIdMessage()+document.getExtension();
                            ServletOutputStream out = response.getOutputStream();
                            BufferedInputStream from = null;
                            response.setContentLength((int) file.length());
                            int bufferSize = 64 * 1024;
                            from = new BufferedInputStream(new FileInputStream(file), bufferSize * 2);
                            byte[] bufferFile = new byte[bufferSize];
                            response.setContentType("application/download");
                            response.setHeader("Content-Disposition", "attachment;filename=\"" + filenameDL + "\"");
                            for (int i = 0; ; i++) {
                                int len = from.read(bufferFile);
                                    if (len < 0)
                                        break;
                                out.write(bufferFile, 0, len);
                            }
                            out.flush();
                            from.close();
                            out.close();
                        } catch(Exception e) {
                            response.setContentType("text/html;charset=UTF-8");
                            PrintWriter out = response.getWriter();
                            out.println("Erreur :"+e.getMessage());
                        }
                    } else {
                        response.setContentType("text/html;charset=UTF-8");
                        PrintWriter out = response.getWriter();
                        out.println("Erreur : fichier inconnu!");
                    }
                }
            } else {
                    response.setContentType("text/html;charset=UTF-8");
                    PrintWriter out = response.getWriter();
                    out.println("Erreur : document inconnu!");
            }
        } else {
                response.setContentType("text/html;charset=UTF-8");
                PrintWriter out = response.getWriter();
                out.println("Erreur !");
        }
    } | 
Partager