Déchargement de fichiers

Discussions sur le développement de JSP, servlets, et Java en général.

Modérateur : Modérateurs

Vini

Messagepar Vini » ven. 04 févr. 2005, 19:44

Bonjour à tous,

je réalise une application "JFrame" qui doit envoyer des données strings vers et des fichiers vers une servlet.
Les données strings parviennent bien à la servlet mais pas les fichiers.
Mais, si je réalise l'application en HTML, pas de problème.

si vous avez une solution pour l'envois de fichiers !!!!!!!
Merci d'avance.

Vini

Messagepar Vini » jeu. 02 févr. 2006, 12:25

Bonjour à tous,

J'ai fini par trouver le solution à mon problème : la voici :
StringBuffer st=new StringBuffer();
try{

Properties props= new Properties();
props.put("Société",so.ReturnSociete());
props.put("Contact",so.ReturnContact());
props.put("Date",so.ReturnDate());
props.put("Libellé",lo.ReturnLibelle());
props.put("Descriptif",lo.ReturnJText());
props.put("Incidence",lo.ReturnJIncidence());
props.put("Logiciel",lo.ReturnJLogiciel());
props.put("Version",lo.ReturnJVersion());
File[] FileJoint=lo.ReturnFile();
String argString = ""; // default
argString= "--AaB03x\r\n";
if (props != null) {
argString += toEncodedString(props); // notice no "?"
}

url=new URL("http://adresse du server+nom de la servlet");
con = url.openConnection();
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
con.setRequestProperty("Content-Type", "multipart/form-data; boundary=AaB03x");
con.setRequestProperty("Accept","*/*");
con.setRequestProperty("Content-length",""+argString.length());
out = new DataOutputStream(con.getOutputStream());
out.writeBytes(argString);
out.flush();

for(int i=0;i<FileJoint.length;i++){
File file=FileJoint[i];
BufferedInputStream bufin = new BufferedInputStream(new FileInputStream(file));
out.writeBytes("content-disposition: form-data; name=\""+file.getName()+"\"; filename=\"" + file.getName() + "\"\r\n");
out.writeBytes("Content-Transfer-Encoding: binary\r\n\r\n");
int a;
byte b[] = new byte[4*1024];
int byteCounter = 0;
int lastBlock = 0;
while ((a = bufin.read(B)) != -1) {
byteCounter += a;
out.write(b, 0, a);
out.flush();
}
out.writeBytes("\r\n--AaB03x--\r\n");
}
out.flush();
iny = con.getInputStream();
in22 = new BufferedReader(new InputStreamReader(iny));
String line2;
int n2=1;
while ((line2=in22.readLine())!=null ){
st.append(line2+"\n");
n2++;
}

}
catch(SocketException e){
st.append("SocketException : ");
st.append(e);
}
catch(FileNotFoundException e){
st.append("FileNotFoundExecption : ");
st.append(e);
}
catch(Exception e){
st.append("Exception : ");
st.append(e);
}


La solution est de placer des délimiteurs Bondary.
Cette solution je l'ai trouver en analysant le flux d'entrée d'une page html envoyant un fichier.

Si cela peut aider des personnes .

Bien à vous,


Revenir vers « Java »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité