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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|