IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Upload de fichiers avec ServletFileUpload : FileNotFoundException pour les fichiers créés récemment


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 187
    Points
    187
    Par défaut Upload de fichiers avec ServletFileUpload : FileNotFoundException pour les fichiers créés récemment
    Bonjour,

    Je rencontre un problème sur l'upload de mes fichiers.
    Avant tout marchait très bien mais hier j'ai remarqué que je ne peux plus uploader avec ServletFileUpload les fichiers créés récemment.
    Je m'explique :
    Si j'uploade des fichiers déjà présents sur le disque tout se passe sans problème. Mais si je crée de nouveaux fichiers par clic droit, nouveau document excel par exemple, j'ai une erreur FileNotFoundException en uploadant ce fichier.
    Ci-dessous mon code :
    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
    DiskFileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    File fileInp = null;
    String excelSheetFeuilleNo = null;
    String excelFileNbIgnoreLines = null;
    String excelFileRowEnd = null;
    List<FileItem> items = upload.parseRequest(request);
     
    if (ServletFileUpload.isMultipartContent(request)) {
    	Iterator<FileItem> iter = items.iterator();
    	while (iter.hasNext()) {
    		FileItem item = (FileItem) iter.next();
    		String fieldName = (String) item.getFieldName();
    		if (item.isFormField()) {
    			if(fieldName.equals("excelSheetFeuilleNo")) {
    				excelSheetFeuilleNo = item.getString();
    			}
    			if(fieldName.equals("excelSheetFeuilleNo")) {
    				excelFileNbIgnoreLines = item.getString();
    			}
    			if(fieldName.equals("excelFileRowEnd")) {
    				excelFileRowEnd = item.getString();
    			}
    		} else {
    			if(fieldName.equals("uploadSearchFile")) {
    				DiskFileItem diskFileItem = (DiskFileItem) item;
    				fileInp = new File(diskFileItem.getStoreLocation()
    						.toString());
    				// Traitement de fileInp
    			}
    		}
    	}
    }
    Et l'erreur :
    java.io.FileNotFoundException: Source 'C:\Users\ilalaina\AppData\Local\Temp\upload_6457b05_133b522f580__8000_00000005.tmp' does not exist
    Je suspecte un problème de droit système mais je n'arrive pas à trouver une explication.
    Je précise : je suis sur Windows 7 entreprise et j'utilise Apache Commons Fileupload 1.2.2, Tomcat 7

    Merci d'avance de votre aide les amis.

  2. #2
    Membre habitué Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 187
    Points
    187
    Par défaut
    Je viens de réaliser que l'erreur n'était pas dû au fait que ce soit un nouveau fichier, mais plutot dû à la taille du fichier.
    Si la taille dépasse 10Ko ça marche, sinon ça marche pas.

    Quelqu'un a-t-il déjà rencontré le même problème?

  3. #3
    Membre habitué Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 187
    Points
    187
    Par défaut
    j'ai trouvé la solution. En fait selon la doc, les fichiers < 10Ko sont stockés en mémoire par défaut, et peut-être que l'antivirus le suspecte ...
    J'ai donc forcé le stockage du fichier sur disque et le problème est résolu.
    Je poste ce message au cas ou d'autres personnes rencontrent le même souci, si ça peut aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DiskFileItemFactory factory = new DiskFileItemFactory();
    factory.setSizeThreshold(0);
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    factory.setRepository(yourTempDirectory);

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 68
    Points : 116
    Points
    116
    Par défaut
    bonjour
    merci pour le forum d'avoir poster ta solution

    Sinon juste pour te prévenir au cas où t'aurais pas vu
    tu as une condition en double ligne 15 et 18
    if(fieldName.equals("excelSheetFeuilleNo"))

  5. #5
    Membre habitué Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 187
    Points
    187
    Par défaut
    Merci Jojo, c'est pour ça le forum non
    Sinon effectivement j'ai une condition en double, merci à toi. A plus.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/03/2014, 19h46
  2. Réponses: 2
    Dernier message: 29/12/2013, 13h29
  3. Réponses: 3
    Dernier message: 04/05/2009, 08h28
  4. Réponses: 5
    Dernier message: 02/05/2009, 19h10
  5. Ouvrier un fichier avec macro depuis un autre fichier avec macro
    Par Jeanvaljean44 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/11/2008, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo