Case: file télécharger

 

 

 

<! DOCTYPE html > 
< html lang = "fr" > 
< tête > 
    < meta charset = "UTF-8" > 
    < title > Titre </ title > 
</ tête > 
< body > 
< a href = "/ J15 / img / 1 .jpg » >图片1 </ a > 
< a href = "/ J15 / img / 2.jpg" >图片2 </ a > 
<
= "/ J15 / downloadServlet? filename = 1.jpg" >图片1 </ a > 
< a href = "/ J15 / downloadServlet? filename = 2.jpg" >图片2 </ a > 
</ body > 
</ html >

 

emballer cn.itcast.web; 

importation javax.servlet.ServletContext;
importation javax.servlet.ServletException;
importation javax.servlet.ServletOutputStream;
importation javax.servlet.annotation.WebServlet;
importation javax.servlet.http.HttpServlet;
importation javax.servlet.http.HttpServletRequest;
importation javax.servlet.http.HttpServletResponse;
importation java.io.FileInputStream;
importation java.io.IOException; 

/ ** 
 * @author 旗木五五开
 * @Create 09/03/2020 01h45 
 * / 
@WebServlet ( "/ downloadServlet" )
 publique classe DownloadServlet l'étend la HttpServlet {
     protégée  vide le doPost (HttpServletRequest demande, la réponse HttpServletResponse) lancers francs ServletException, IOException {
 //         1. Les paramètres de demande d'acquisition, le nom de fichier 
        chaîne filename = request.getParameter ( "nom de fichier" );
 //         2. Utilisez l' octet d'entrée les flux dans la mémoire
 //         2,1 localiser le chemin de serveur de fichiers à 
        la ServletContext où ServletContext = la présente .getServletContext (); 
        Chaîne realpath = ServletContext.getRealPath ( "/ IMG /" + filename);
 //         associé au flux d'octets 2.2 
        le FileInputStream FIS = new newFileInputStream (realpath); 

//         définir la réponse des têtes respectives
 @         acquiert fichier réel nom de fichier suivant type MIME 
        chaîne mimeType = servletContext.getMimeType (nom de fichier);
 //         définir le type d' en- tête de réponse MIME: Content-Type 
        response.setHeader ( " par type de contenu "mimeType);
 //         ensemble pour ouvrir en réponse au premier mode de réalisation: Content-Disposition 
        / * attachement annexe 
        * nom de fichier correspondant au nom de la boîte invite de téléchargement 
        * * / 
        response.setHeader ( " Content-Disposition "" fixation; filename = « + filename); 

//         écrire les données dans le flux d'entrée 3. le courant de sortie: les opérations de fichier Duikao
 //         3,1 flux de sortie de fichier 
        ServletOutputStream sos =response.getOutputStream ();
 //         3.2 définit un tableau d'octets de, en tant que tampon 
        octet [] = BUFF nouveau nouvel  octet [1024 * 8. ];
 //         3,3 le nombre de lecture 
        int len = 0 ;
 //         3,4 cycle de lecture , lu dans la mémoire tampon 
        du tout ((len = (fis.read (BUFF)))! = 1) { // pas égal à -1 fichier de description ne soit pas lu jusqu'à la fin
 //               3,5 en utilisant le flux de sortie, la sortie des données de lecture 
            sos.write (BUFF, 0, len); // flux d'octets sans rafraîchir 
        }
 //         flux de sortie sans jeu, le flux d'entrée pour fermer 
        fis.close (); 
    } 

    protégé  vide le doGet (HttpServletRequest la demande, la réponse HttpServletResponse)jette ServletException, IOException {
         cette .doPost (requête, réponse); 
    } 
}

 

 

 question du nom chinois

get problème des ordures chinois à la demande demande Tomcat8 get sera traitée automatiquement

<! DOCTYPE html > 
< html lang = "fr" > 
< tête > 
    < meta charset = "UTF-8" > 
    < title > Titre </ title > 
</ tête > 
< body > 
< a href = "/ J15 / img / 1 .jpg » >图片1 </ a > 
< a href = "/ J15 / img / 2.jpg" >图片2 </ a > 
<
= "/ J15 / downloadServlet? filename =九尾.jpg" >图片1 </ a > 
< a href = "/ J15 / downloadServlet? filename = 2.jpg" >图片2 </ a > 
</ body > 
</ html >

Firefox 

360

 

 

boîte de message pop-up ne montre pas les Chinois normale, pas les mêmes dans les différents navigateurs

résoudre

 

Je suppose que tu aimes

Origine www.cnblogs.com/rijiyuelei/p/12446311.html
conseillé
Classement