<FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="/jspSmartUpload/upload.jsp"> <INPUT TYPE="FILE" NAME="MON FICHIER"> <INPUT TYPE="SOUMETTRE"> </FORM> |
<!-- Nom du fichier : télécharger.html Auteur : Yu Yiqi du centre de production de logiciels de Zongheng ([email protected]) --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <tête> <title>Téléchargement de fichiers</title> <méta http-equiv="Content-Type" content="text/html; charset=gb2312"> </tête> <corps> <p> </p> <p align="center">Télécharger la sélection de fichiers</p> <FORM METHOD="POST" ACTION="jsp/do_upload.jsp" ENCTYPE="multipart/form-data"> <input type="hidden" name="TEST" value="bon"> <table width="75%" border="1" align="center"> <tr> <td><div align="center">1. <input type="FILE" name="FILE1" size="30"> </div></td> </tr> <tr> <td><div align="center">2. <input type="FILE" name="FILE2" size="30"> </div></td> </tr> <tr> <td><div align="center">3. <input type="FILE" name="FILE3" size="30"> </div></td> </tr> <tr> <td><div align="center">4. <input type="FILE" name="FILE4" size="30"> </div></td> </tr> <tr> <td><div align="center"> <input type="submit" name="Submit" value="Téléchargez-le !"> </div></td> </tr> </table> </FORM> </corps> </html> |
<%-- Nom du fichier : do_upload.jsp Auteur : Yu Yiqi du centre de production de logiciels de Zongheng ([email protected]) --%> <%@ page contentType="text/html; charset=gb2312" langage="java" import="java.util.*,com.jspsmart.upload.*" errorPage="" %> <html> <tête> <title>Page de traitement du téléchargement de fichiers</title> <méta http-equiv="Content-Type" content="text/html; charset=gb2312"> </tête> <corps> <% // Crée un nouvel objet SmartUpload SmartUpload su = new SmartUpload(); //Télécharger l'initialisation su.initialize(pageContext); // Définir les limites de téléchargement // 1. Limitez la longueur maximale de chaque fichier téléchargé. // su.setMaxFileSize(10000); // 2. Limitez la longueur du total des données téléchargées. // su.setTotalMaxFileSize(20000); // 3. Définissez les fichiers autorisés à être téléchargés (restreints par extension), seuls les fichiers doc et txt sont autorisés. // su.setAllowedFilesList("doc,txt"); // 4. Définir les fichiers dont le téléchargement est interdit (restreint par extension), interdire le téléchargement de fichiers avec exe, bat, Fichiers avec extensions jsp, htm, html et fichiers sans extensions. // su.setDeniedFilesList("exe,bat,jsp,htm,html,,"); //Télécharger les fichiers su.upload(); // Enregistre tous les fichiers téléchargés dans le répertoire spécifié int count = su.save("/upload"); out.println(count+"Fichiers téléchargés avec succès !<br>"); //Utilisez l'objet Request pour obtenir la valeur du paramètre out.println("TEST="+su.getRequest().getParameter("TEST") +"<BR><BR>"); // Extrayez les informations des fichiers téléchargés une par une et enregistrez les fichiers en même temps. pour (int i=0;i<su.getFiles().getCount();i++) { com.jspsmart.upload.File file = su.getFiles().getFile(i); // Continue si le fichier n'existe pas if (file.isMissing()) continue ; // Afficher les informations du fichier actuel out.println("<TABLE BORDER=1>"); out.println("<TR><TD>Nom du formulaire (FieldName)</TD><TD>" + fichier.getFieldName() + "</TD></TR>"); out.println("<TR><TD>Longueur du fichier (Taille)</TD><TD>" + fichier.getSize() + "</TD></TR>"); out.println("<TR><TD>NomFichier (NomFichier)</TD><TD>" + fichier.getFileName() + "</TD></TR>"); out.println("<TR><TD>Extension de fichier (FileExt)</TD><TD>" + fichier.getFileExt() + "</TD></TR>"); out.println("<TR><TD>Nom complet du fichier (FilePathName)</TD><TD>" + fichier.getFilePathName() + "</TD></TR>"); out.println("</TABLE><BR>"); // Enregistrez le fichier sous // file.saveAs("/upload/" + myFile.getFileName()); // Enregistrer dans un répertoire avec le répertoire racine de l'application WEB comme répertoire racine du fichier // file.saveAs("/upload/" + myFile.getFileName(), su.SAVE_VIRTUAL); // Enregistrer dans le répertoire où le répertoire racine du système d'exploitation est le répertoire racine du fichier // file.saveAs("c:\temp\" + myFile.getFileName(), su.SAVE_PHYSICAL); } %> </corps> </html> |
<!-- Nom du fichier : télécharger.html Auteur : Yu Yiqi du centre de production de logiciels de Zongheng ([email protected]) --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <tête> <title>Télécharger</title> <méta http-equiv="Content-Type" content="text/html; charset=gb2312"> </tête> <corps> <a href="jsp/do_download.jsp">Cliquez pour télécharger</a> </corps> </html> |
<%@ page contentType="text/html;charset=gb2312" import="com.jspsmart.upload.*" %><% // Crée un nouvel objet SmartUpload SmartUpload su = new SmartUpload(); //Initialiser su.initialize(pageContext); //Définissez contentDisposition sur null pour empêcher le navigateur d'ouvrir automatiquement le fichier. // Assurez-vous que le fichier est téléchargé après avoir cliqué sur le lien. S'il n'est pas défini, lorsque l'extension du fichier téléchargé est //doc, le navigateur l'ouvrira automatiquement avec Word. Lorsque l'extension est pdf, //Le navigateur sera ouvert avec acrobat. su.setContentDisposition(null); // Télécharger le fichier su.downloadFile("/upload/Comment gagner mon premier pot d'or.doc"); %> |
public void downloadFile (String s, String s1, String s2, int i) lance ServletException, IOException, SmartUploadException { si(s==null) lancer une nouvelle IllegalArgumentException("Fichier '" + s + "' introuvable (1040)."); if(s.equals("")) lancer une nouvelle IllegalArgumentException("File '" + s + "' introuvable (1040)."); if(!isVirtual(s) && m_denyPhysicalPath) lancer une nouvelle SecurityException("Le chemin physique est refusé (1035)."); si (est virtuel (s)) s = m_application.getRealPath(s); fichier java.io.File = nouveau(s) java.io.File(s); FileInputStream fileinputstream = new FileInputStream(fichier); long l = fichier.longueur(); indicateur booléen = faux ; entier k = 0 ; octet abyte0[] = nouvel octet[i]; si(s1==nul) m_response.setContentType("application/x-msdownload"); autre si(s1.length() == 0) m_response.setContentType("application/x-msdownload"); autre m_response.setContentType(s1); m_response.setContentLength((int)l); m_contentDisposition = m_contentDisposition != null ? m_contentDisposition : "pièce jointe;"; si (s2 == nul) m_response.setHeader("Content-Disposition", m_contentDisposition + " nom de fichier =" + toUtf8String(getFileName(s))); autre si(s2.length() == 0) m_response.setHeader("Content-Disposition", m_contentDisposition); autre m_response.setHeader("Content-Disposition", m_contentDisposition + " filename=" + toUtf8String(s2)); tandis que((long)k < l) { int j = fileinputstream.read(abyte0, 0, i); k + = j; m_response.getOutputStream().write(abyte0, 0, j); } fileinputstream.close(); } /** * Convertissez les caractères chinois du nom de fichier en une chaîne codée UTF8 afin que le nom du fichier enregistré puisse être correctement affiché lors du téléchargement. * Centre de production de logiciels de Zongheng Yu Yiqi 2003.08.01 * Nom de fichier original de @param* @return nom de fichier réencodé*/ chaîne statique publique toUtf8String(String s) { StringBuffer sb = new StringBuffer(); pour (int i=0;i<s.length();i++) { char c = s.charAt(i); si (c >= 0 && c <= 255) { sb.append(c); } autre { octet[] b; essayer { b = Character.toString(c).getBytes("utf-8"); } catch (Exception ex) { System.out.println(ex); b = nouvel octet[0] ; } pour (int j = 0; j < b.length; j++) { int k = b[j]; si (k < 0) k += 256 ; sb.append("%" + Integer.toHexString(k). toUpperCase()); } } } return sb.toString(); } |