Bonsoir à tous,
je viens de créer une méthode pour l'upload de fichier dans un répertoire et sous répertoire genre c:\upload\2011\nomDuFichier.pdf
Le répertoire avec la date se met automatiquement en 2012 quand il faudra, car il est creer par l'appel de la méthode getdate.
mais mon problème est que je voudrais limiter l'uploade à un type de fichier, les doc,docx et pdf.
j'ai beau regarder je trouve pour php ou avec struts, mais je n'utilise pas struts pour l'instant, mais apache commons fileupload.
j'ai regardé sur le forum, mais je n'ai rien qui me dit comment faire.
Auriez-vous une idée pour moi ?
voici mon code (fonctionnel) il me faut juste le système pour vérification de l'extension à l'upload.
Merci pour votre aide
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 /** * */ package be.festiwavre.rl.uploadFiles; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.log4j.Logger; import be.festiwavre.model.rl.modifUsers.ModifUsersModel; /** * Classe de méthode pour la gestion des uploades * * @author Rudy Lemaitre * */ public class UploadFileOnServer implements UploadInterface { private static final String dossierUplaod = "c://upload//"; /** * mise en service du logger */ private static final Logger log = Logger.getLogger(ModifUsersModel.class); /** * Méthode pour l'upload de fichier sur le disque dur * * @author Rudy Lemaitre * @param id * : id du dossier lier au documents * @param request * : le fichier à uploader */ public void UploadFile(String id, HttpServletRequest request) { // Création du format de la date pour le répertoire SimpleDateFormat dateFormatDirectory = new SimpleDateFormat("yyyy"); String dateDirectory = dateFormatDirectory.format(new Date()); // Création du format de la date pour le fichier SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy_MM_dd-HH-mm-ss"); String date = dateFormat.format(new Date()); // on prépare pour l'envoie par la mise en oeuvre en mémoire DiskFileItemFactory fileItemFactory = new DiskFileItemFactory(); ServletFileUpload uploadHandler = new ServletFileUpload(fileItemFactory); try { List<FileItem> items = (List<FileItem>) uploadHandler .parseRequest(request); Iterator<FileItem> itr = (Iterator<FileItem>) items.iterator(); // au besoin on creer le dossier principal des archive et le sous // dossier qui correspond à l'année en cour new File(dossierUplaod + dateDirectory).mkdirs(); while (itr.hasNext()) { FileItem item = (FileItem) itr.next(); // on donne le chemin d'écriture au fichier ainsi que sont nom // et on le met dans l'année en cours File file = new File(dossierUplaod + dateDirectory, id+"_"+date + ".pdf"); log.debug(file.getAbsolutePath()); // on écrit le fichier item.write(file); log.debug("fichier uploader : status ok"); } } catch (FileUploadException ex) { log.error("Impossible de faire un parsing du request", ex); } catch (Exception ex) { log.error("Impossible d'uploader le fichier", ex); } } }
Rudy
Partager