begin process at 2010 02 10 06:44:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Applet

 > 

Upload java vers php


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Upload java vers php

lundi 4 juillet 2005 à 11:12:42 | Upload java vers php

gorbadoc_51

Bonjour, voila j'ai fait le code suivant pour envoyer un fichier. A la fin je recupere le resultat du traitement par une page php. celle ci m'affiche alors: HTTP/1.1 400 Bad Request Transfer-Encoding: chunked Date: Mon, 04 Jul 2005 09:27:35 GMT Server: Apache-AdvancedExtranetServer/2.0.47 (Mandrake Linux/6mdk) mod_perl/1.99_09 Perl/v5.8.1 mod_ssl/2.0.47 OpenSSL/0.9.7b PHP/4.3.2 --------------: --- Connection: close Content-Type: text/html; charset=iso-8859-1 1A1 400 Bad Request

Bad Request

Your browser sent a request that this server could not understand.


Apache-AdvancedExtranetServer/2.0.47 (Mandrake Linux/6mdk) mod_perl/1.99_09 Perl/v5.8.1 mod_ssl/2.0.47 OpenSSL/0.9.7b PHP/4.3.2 Server at web.infostrates.fr Port 80
0 Mon entete n'a pas l'air bon.. non? Mais je dois mettre quoi alors? Voici le code de depart: private void upload() { int k; byte[] abyte = new byte[4096]; Socket s = null; DataOutputStream dataOS = null; DataInputStream CatchIS = null; try { s = new Socket(host, port); } catch(IOException e) { System.out.println("Erreur d'ouverture de socket: " + e.toString()); } try { dataOS = new DataOutputStream(s.getOutputStream()); dataOS.writeBytes("POST " + serverPath + "traitement.php HTTP/1.1\r\n"); dataOS.writeBytes("Content-Length: "+ "4096" +"\r\n"); dataOS.writeBytes("Content-Type: application/octet-stream\r\n"); dataOS.writeBytes("\r\n"); //System.out.println("Fin d'envoie de l'entete\n"); } catch(IOException e) { System.out.println("Erreur lors de l'envoie de l'entete: " + e.toString()); } try { FileInputStream fileIS = new FileInputStream(fileToUpload); while ((k = fileIS.read(abyte)) != -1) { dataOS.write(abyte, 0, k); dataOS.flush(); } } catch(IOException e) { System.out.println(e); } try { CatchIS = new DataInputStream(s.getInputStream()); FileOutputStream fileOS = new FileOutputStream("c:\\test2.txt"); while ((k = CatchIS.read(abyte)) != -1) { System.out.println(abyte+"\n"); fileOS.write(abyte, 0, k); fileOS.flush(); } } catch(IOException e){ } }
lundi 4 juillet 2005 à 11:54:37 | Re : Upload java vers php

Syruis

essaye ca:
headerHTTP += "POST " + scriptPath + " HTTP/1.1\r\n";
headerHTTP += "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*\r\n";
headerHTTP += "Accept-Language: fr,en-us;q=0.7,zh;q=0.3\r\n";
headerHTTP += "Content-Type: multipart/form-data; boundary=---------------------------7d2c0141d01c8\r\n";
headerHTTP += "Accept-Encoding: gzip, deflate\r\n";
headerHTTP += "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)\r\n";
headerHTTP += "Host: " + serverNameUrl + ":" + serverPort + "\r\n"; // Content
headerHTTP += "Content-length: " + (contentLenght - 2) + "\r\n";
headerHTTP += "Connection: Close\r\n";
headerHTTP += "Cache-Control: no-cache\r\n\r\n" + encodedParams;

chez moi ca fonctionne parfaitement.

Syruis :)
http://forum.musique.free.fr
le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....
lundi 4 juillet 2005 à 13:42:21 | Re : Upload java vers php

gorbadoc_51

Réponse acceptée !
En fait mon serveur est en HTTP/1.0 et non 1.1. l'erreur était la... Mais les parametres accept, accept-languagee et accept encoding m'intéresse beaucoup... Merci...
lundi 4 juillet 2005 à 14:27:59 | Re : Upload java vers php

gorbadoc_51

Par contre mon probleme est que j'envoie un fichier et donc la structure du message est la suivante: POST /.../traitement.php HTTP/1.0 Content-Length : taille_du_fichier Content-Type : multipart/form-data Content-Disposition: form-data; name="nom_variable"; filename="test.txt" le fichier est envoyé... --Fin de la requete avec php, lorsque je traite la reponse, si je regarde la variable $_FILES, elle est vide :( C'est comme si la ligne avec Content-Disposition ne servait à rien... Et si j'utilise un formulaire, ca marche sans pb... Quelqu'un a une idee... j'ai oublié qque chose? Voici le code que j'utilise... private void upload() { int k; byte[] abyte = new byte[4096]; Socket s = null; DataOutputStream dataOS = null; DataInputStream CatchIS = null; try { s = new Socket(host, port); } catch(IOException e) { System.out.println("Erreur d'ouverture de socket: " + e.toString()); } try { dataOS = new DataOutputStream(s.getOutputStream()); dataOS.writeBytes("POST " + serverPath + "traitement.php HTTP/1.0\r\n"); dataOS.writeBytes("Content-Length : "+ "4096" +"\r\n"); dataOS.writeBytes("Content-Type : multipart/form-data\r\n"); dataOS.writeBytes("Content-Disposition: form-data; name=\"fichier\"; filename=\"test.txt\"\r\n"); dataOS.writeBytes("\r\n"); } catch(IOException e) { System.out.println("Erreur lors de l'envoie de l'entete: " + e.toString()); } try { FileInputStream fileIS = new FileInputStream(fileToUpload); while ((k = fileIS.read(abyte)) != -1) { dataOS.write(abyte, 0, k); dataOS.flush(); } dataOS.writeBytes("\r\n"); } catch(IOException e) { System.out.println(e); } try { CatchIS = new DataInputStream(s.getInputStream()); FileOutputStream fileOS = new FileOutputStream("c:\\test2.txt"); while ((k = CatchIS.read(abyte)) != -1) { fileOS.write(abyte, 0, k); fileOS.flush(); } } catch(IOException e){ } try { RandomAccessFile raf = new RandomAccessFile("c:\\test2.txt", "r"); String ligne; int nblignes = 1; while ( (ligne = raf.readLine()) != null) { if ( nblignes==1 || nblignes>6 )System.out.println(ligne); nblignes++; } } catch (IOException e) { System.out.println("erreur dans: " + e); } }
lundi 4 juillet 2005 à 15:27:16 | Re : Upload java vers php

Syruis

1°) pour passer un fichier txt il faut mieux le passer en "get" via un applet du genre upload.php?nom=test.txt&contenu=dedans
plus simple...
2°) Ensuite fait quelque chose comme ca :
ou wr est un BufferedOutputStream

BufferedOutputStream wr = new BufferedOutputStream(socket.getOutputStream());

plop = fileHeader.getBytes();
len = fileHeader.length();

try {
            wr.write(plop, 0, len);
        } catch (Exception e) {
            m_status.setText("Error : could send HTTP header !");
            m_status.invalidate();
            return;
        }


Syruis :)
http://forum.musique.free.fr
le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....
lundi 4 juillet 2005 à 15:44:02 | Re : Upload java vers php

gorbadoc_51

Ok, mais le probleme c que le fichier texte c'est pour les testes, apres ca doit etre des images, des .doc, etc... du binaire en fait... Ton code est bien (il est plus propre que le mien :) mais il ne résoud pas le probleme. Je pense que c'est un probleme dans ce que j'envoie dans le header. Je ne doit pas bien suivre le protocole des requetes HTTP... Mais meme mon meilleur ami (cf google :) ne me trouve rien sur ce sujet...
lundi 4 juillet 2005 à 15:59:42 | Re : Upload java vers php

Syruis

ok en effet pour les binaire post est bien mieux :)

Merci pour mon code.

Ensuite fait gaffe les serveurs Apache ne peuveut pas accepter ce genre de requete pour une raison que je n'ai pas résolu. Pourtant sur un IIS 5 la même requete fonctionne !!!!

moi m'enfou je suis sous IIS mais bon...

Syruis :)
http://forum.musique.free.fr
le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....
lundi 4 juillet 2005 à 16:07:36 | Re : Upload java vers php

gorbadoc_51

Effectivement le serveur tourne sous apache, mais je n'ai pas de serveur IIS sous la main... :[ C pas cool tout ca, parce qu'au final ca doit marcher sous apache. C'est bizare qu'il ne l'accepte pas... J'ai trouvé les spec du protocole HTTP, et apparement je les suis... http://ftp.ics.uci.edu/pub/ietf/html/rfc1867.txt http://www.run.montefiore.ulg.ac.be/~martin/resources/form.html ou encore http://www.commentcamarche.net/internet/http.php3 Snif... Snif... Non je ne decourage pas... Je trouverais!!!
lundi 4 juillet 2005 à 16:22:40 | Re : Upload java vers php

Syruis

Je suis d'accord avec toi moi aussi j'ai un Apache en local et j'ai fait mille et un test,... jusqu'au moment ou j'ai vu que ca tournait nickel sous IIS!!!

C une question que Apache détecte d'ou viens la requete et il faut le reglé pour accepter les requetes post extérieures...

Syruis :)
http://forum.musique.free.fr
le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....
mardi 5 juillet 2005 à 09:46:53 | Re : Upload java vers php

gorbadoc_51

Réponse acceptée !
Un petite nuit de repos ne fesant pas de mal... J'ai enfin trouvé quelque chose. http://www.devx.com/Java/Article/17679/1954 Un classe qui marche tres bien. Tres clair si on veut juste s'en inspirer... En tout cas merci Syruis de t'etre intéressé à mon probleme...


Cette discussion est classée dans : php, system, out, dataos, abyte


Répondre à ce message

Sujets en rapport avec ce message

[java]creation de fichier ... [ par suber600 ] voila je dois creer un fichier composé d entier et de double. le fichier ne doit pas etre lisible par un editeur de texte comment dois je faire ? je v Besoin d'aide programme etudiants, assez simple [ par The Waxy Man ] J'ai re-besoin d'aide !!!ERREUR:C:\jdk1.3\bin\javaw.exe -classpath "C:\jdk1.3\jre\lib\rt.jar;C:\DATA\2ti\Eleves\Englebert" Englebertjava.lang.NullPoi prob avec vector et fichier [ par bruno270579 ] je dois faire un projet en java et j'ai une colle je dois faire un objet Client qui contiendrai les champs suivant String nom, prenom, adresse; et un URGENT!!! Problème avec applets et jdbc [ par PhilippeA ] Bonjour,voilà j'ai créer un fichier java me permettant d'accéder à une base access. Ca marche. Mais il faut que je passe ce fichier en applet donc j'a Problème APPLET JDBC ACCESS [ par PhilippeA ] Bonjour,voilà j'ai créer un fichier java me permettant d'accéder à une base access. Ca marche. Mais il faut que je passe ce fichier en applet donc j'a Problème APPLET JDBC ACCESS [ par PhilippeA ] Bonjour,voilà j'ai créer un fichier java me permettant d'accéder à une base access. Ca marche. Mais il faut que je passe ce fichier en applet donc j'a Problème APPLET JDBC ACCESS [ par PhilippeA ] Bonjour,voilà j'ai créer un fichier java me permettant d'accéder à une base access. Ca marche. Mais il faut que je passe ce fichier en applet donc j'a free et jdbc [URGENT !!!] [ par kerlutinhoec ] bien le bonjour !Bon, moi, je suis emmerdé par jdbc.J'utilise le driver org.gjt.mm.mysql.Driver pour essayer de me co a une bdd type MySQL.Alors le pr free et jdbc [URGENT !!!] [ par kerlutinhoec ] bien le bonjour !Bon, moi, je suis emmerdé par jdbc.J'utilise le driver org.gjt.mm.mysql.Driver pour essayer de me co a une bdd type MySQL.Alors le pr Enregistrer le source d'une page web a partir de son url [ par YavaDeus ] Alors voila le probleme, je souhaite enregistrer dans un fichier, le code d'une page html(a partir de son url) , de facon a pouvoir recuperer des info


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales