Accueil > Forum > > > > Upload java vers php
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
Livres en rapport
|
Derniers Blogs
[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|