<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();
} |