J'ai fait tout cela mais de toute façon la méthode handleFileUpload semble ne pas être appelée, j'ai fait un print au début et il ne s'affiche pas...
J'ai fait tout cela mais de toute façon la méthode handleFileUpload semble ne pas être appelée, j'ai fait un print au début et il ne s'affiche pas...
Je vous propose alors d'utiliser un chemin relatif. J'ai laissé certaines instructions en commentaire, pour mettre en évidence les différences.
D'habitude l'on met dans le dossier "images" uniquement les images nécessaires à l'application (les icônes des boutons, les ajax.gif, etc.) car si l'on commence à télécharger des trucs à cet endroit, la taille du dossier du projet augmente inutilement. Mais pour l'instant je ne vois pas d'autre solution.
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 public void handleFileUpload(FileUploadEvent event) { InputStream is; String fileName = event.getFile().getFileName(); // Le dossier "images" DOIT exister dans le dossier "web" de votre application // Il peut avoir un autre nom mais il DOIT exister à cet endroit précis et nulle part ailleurs String relativeDestination = "//images//"; //String absoluteDestination = "C:\\testUpload\\destination\\"; try { //File tempFile = new File(absoluteDestination + fileName); File tempFile = new File(FacesContext.getCurrentInstance().getExternalContext().getRealPath(relativeDestination + fileName)); is = event.getFile().getInputstream(); OutputStream os = new FileOutputStream(tempFile); byte buf[] = new byte[1024]; int len; while ((len = is.read(buf)) > 0) { os.write(buf, 0, len); } os.close(); is.close(); System.out.print("fileName" + fileName);//test } catch (IOException ex) { ex.printStackTrace(); } FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded."); FacesContext.getCurrentInstance().addMessage(null, msg); }
Après avoir fait cette modification, postez encore une fois toutes les lignes de code contenant des chemins de fichier (dans web.xml, FileUploadController.java, FileDownloadController.java).
Chaque fois que tu dis "je ne peux pas", n'oublie pas d'ajouter le mot "encore".
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager