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 :

[JSP] Upload de fichier capricieux


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Points : 16
    Points
    16
    Par défaut [JSP] Upload de fichier capricieux
    Bonjour,
    je dois réaliser une page qui permet d'uploader des fichiers en jsp.
    J'ai le code suivant, qui marche parfaitement si le contenu du fichier est du texte, mais je ne vois pas pourquoi cela ne marche pas avec des images par exemple :/

    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
    <%@ page import="java.io.*" %>
    
    <%
    	String contentType = request.getContentType();
    	//out.print("Content type is :: " +contentType);
    	if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0)) {
    		DataInputStream in = new DataInputStream(request.getInputStream());
    		int formDataLength = request.getContentLength();
    
    		byte dataBytes[] = new byte[formDataLength];
    		int byteRead = 0;
    		int totalBytesRead = 0;
    		while (totalBytesRead < formDataLength) {
    			byteRead = in.read(dataBytes, totalBytesRead, formDataLength);
    			totalBytesRead += byteRead;
    		}
    
    		String file = new String(dataBytes);
    
    		String saveFile = file.substring(file.indexOf("filename=\"") + 10);
    
    		saveFile = saveFile.substring(0, saveFile.indexOf("\n"));
    
    		saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,saveFile.indexOf("\""));
    
    		int lastIndex = contentType.lastIndexOf("=");
    		String boundary = contentType.substring(lastIndex + 1,contentType.length());
    
    		int pos;
    		pos = file.indexOf("filename=\"");
    		pos = file.indexOf("\n", pos) + 1;
    		pos = file.indexOf("\n", pos) + 1;
    		pos = file.indexOf("\n", pos) + 1;
    
    		int boundaryLocation = file.indexOf(boundary, pos) - 4;
    		int startPos = ((file.substring(0, pos)).getBytes()).length;
    
    		int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;
    		saveFile = "/home/GILLET/" + saveFile;
    		FileOutputStream fileOut = new FileOutputStream(saveFile);
    
    		//fileOut.write(dataBytes);
    		fileOut.write(dataBytes, startPos, (endPos - startPos));
    		fileOut.flush();
    		fileOut.close();
    	}
    %>
    La valeur qui pose problème est endPos, mais je ne vois pas la raison.

    Pourriez vous m'éclairer ?

    Merci d'avance.

    Enguerran

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    Si cependant vous avez un autre script simple pour uploader des fichiers, je suis bien sûr preneur

  3. #3
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Pourquoi tu ne regardes pas du coté de l'API FileUpload

    http://jakarta.apache.org/commons/fileupload/

    Voilà
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    Merci pour ta réponse.
    Je vais y jeter un oeil.

    Mais c'est pour intégrer dans un produit commercial. Cela sera-t-il possible sans soucis ? Je n'ai pas encore trouvé la license utilisée sur leur site :/

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    FileUpload fait partie des commons apache donc la licence est celle d'Apache

    http://www.apache.org/licenses/
    Clic me...
    CV en ligne

    Il y a 10 types de personnes, celui qui connait le binaire, et l'autre...

    Pas de réponse en MP...Merci

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    Je te remercie

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

Discussions similaires

  1. Upload de fichier avec jsp
    Par fx2024 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 07/06/2006, 17h02
  2. [Servlet & JSP]Upload de fichier
    Par Gob4 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 31/05/2006, 10h53
  3. [JSP - FileUpload] - uploader un fichier
    Par karibouxe dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 30/05/2006, 14h00
  4. Réponses: 3
    Dernier message: 08/05/2006, 23h31
  5. [JSP] Problème d'upload de fichiers
    Par Ludo_xml dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 07/09/2005, 11h20

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