Ecrire un fichier sur le server d'origine avec une applet

Messages postés
9
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 octobre 2006
-
Messages postés
9
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 octobre 2006
-
voila j'ai réalisé une applet qui recupere un fichier xml sur le server
dont elle provient (fonctionne tres bien), mais je n'arrive pas apres
modification a réécrire ce fichier sur le server.


j'ai utilisé le systeme inverse que pour la reception :


urlConnexion = url.openConnection();

urlConnexion.setDoOutput(true);

sortie       = urlConnexion.getOutputStream();


etc...


lorsque je snif le reseau depuis le server je vois bien qu'il y a un
trafic particulier quand j'esseye de renvoyer le fichier (d'ailleur vu
de l'applet tout a l'air de bien fonctionner) mais aucun changement au
final du fichier...


si quelqu'un a une idée...


M

14 réponses

Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
12
est-ce que tu as les droits pour pouvoir écrire le fichier? Il faut que ton applet soit signé pour avoir le droit de toucher au système de fichier de la machine distante!
Bob...
"La chance accorde ses faveur aux esprits avertis..."
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

les seuls cas ou un applet doit obligatoirement etre signé(ou avoir les règles de policy) sont
 - ecriture, lecture, modification d'un fichier dans son sand box ce qui exclu donc les fichiers ecrit coté serveur
 - Ouverture de socket ip (connexion sql comprise)
 - Ouverture de pipe 

bref elle n'a pas le droit de faire grand chose en faite.

Pour ton problème dans tes paquets tu vois bien les modifications demandé ? par ce que si c'est bien le cas c'est juste que coté serveur tu ne fais pas ce qu'il faut.

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
9
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 octobre 2006

merci pour les réponses.


Mon applet est signée et a un acces sans restrictions. coté serveur, c'est un PC perso sous debian, et le repertoire du fichier et ce fichier a écrire sont en lecture/ecriture pour tout le monde...


faut 'il utiliser une servlet ??? comment fonctionne le protocole du IO standart ? comment peut il ecrire un fichier a distance avec le server WEB ...


plein de questions..


M
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

comment tu envois le fichier? via le port web soit sur une requete html? ou tu l'envois sur un port perso? quel langage coté serveur?

en gros peut tu détailler l'architecture de ton client/serveur que l'on puisse mieux orienter la réponse vu qu'il y a quand meme pas mal de solutions différents celon l'archi

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
9
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 octobre 2006

il est envoyé via le port web, car je ne fait aucune ouverture de socket pour la lecture et l'ecriture.

je recupere l'url avec getCodeBase() et apres je crée une urlconnexion par default, puis la transmission du stream...

j'aimerais si possible ne pas avoir a utiliser un autre port que le 80 (WEB) pour eviter lorsque le server se trouver derriere un routeur d'avoir a faire la redirection de plusieurs ports...

le server WEB est un apache...

quels sont les solutions ?

M
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

tu as regardé si l'entete de ta requete d'envoi est bien formaté? soit avec
le type d'action, le content-type le mime, etc... par ce que sans cela tu ne parviendra jamais à le recuperer coté serveur et apache rique de poubeliser la requete

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
9
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 octobre 2006

je vois trop ce que tu veux dire.... a quel niveau ?

(il s'agit d'un fichier xml)
je ne vois pas ou je peux regler un entete... as tu un exemple... je suis un peu perdu
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

quand tu envois un fichier depuis un formulaire web il y a une entete dans la requete post du fichier qui precise ce que c'est afin que le serveur derriere décode bien la requete et le passe à du php,cgi, ou autre dans de bonne eduforme.

donc ton applet doit en quelque sorte se faire passer pour un formulaire afin qu'apache puisse faire son job correctement exemple d'envoi de fichier capturé avec ethereal

GET /cheminVersPageWebSourceDeLaRequete/fichier.php?file= nomFichier.extension HTTP/1.1

Host: siteWeb

User-Agent: Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.6) Gecko/20060806 Firefox/1.5.0.6

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3

Accept-Encoding: gzip,deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

Referer: http://siteWeb/cheminDeLapageWebDeredirection.php (je redirige apres)
Cookie: PHPSESSID =lenumsession (vu qu'il y a du php avec check de session)
 
HTTP/1.1 200 OK

Date: Fri, 08 Sep 2006 13:02:18 GMT

Server: Apache

X-Powered-By: PHP/5.0.4

Set-Cookie: PHPSESSID=lenumsession; path=/

Expires: Thu, 19 Nov 1981 08:52:00 GMT

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Content-Disposition: attachment; filename=Fichier.extension

Connection: close

Transfer-Encoding: chunked

Content-Type: application/octet-stream

 
948<-taille du fichier en octets
Contenu du fichier
0

 

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
9
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 octobre 2006

merci, mais cette entete doit etre dans quel fichier...
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
dans aucun fichier c'est le formatage http

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
9
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 octobre 2006

ça ce gere dans la conf d'apache ?? ou ??
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

en cherchant tu aurais trouvé ........

voici des exemples de codes sur ce que tu dois faire et comment le faire :

http://java.developpez.com/faq/java/?page=reseau#postUrl

(le liens ci-dessous concerne une applet et une servlet mais meme si tu met une page php à la place apres avoir adapté un chouilla ca passe niquel)
http://java.developpez.com/faq/java/?page=reseau#RESEAU_comm_applet_servlet

pour la culture et les questions a venir lis ce pdf avant :
Programmation java et web

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
9
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 octobre 2006

(désolé pour les delais (freebox hd HS))


j'ai tout lu, et toujours pas trouvé la réponse au probleme... pourtant
je dois pas etre le seul a vouloir envoyer un fichier que le server
apache doit traiter.


;)


Marco
Messages postés
9
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 octobre 2006

je n'arrive toujours pas a voir la procedure pour creer un fichier et
le remplir a distance. Rien de ce que je trouve sur la toile n'est
complet :(


Mon but est de sauvegarder sur le server des datas entrées sur
l'applet. si quelqu'un a deja fait ça, je serais tres interressé pour
en parler avec lui !!


a+