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

zoffoz Messages postés 9 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 octobre 2006 - 6 sept. 2006 à 15:50
zoffoz Messages postés 9 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 octobre 2006 - 5 oct. 2006 à 12:59
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

cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
8 sept. 2006 à 01:15
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..."
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
8 sept. 2006 à 09:46
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
0
zoffoz Messages postés 9 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 octobre 2006
8 sept. 2006 à 11:36
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
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
8 sept. 2006 à 11:45
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zoffoz Messages postés 9 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 octobre 2006
8 sept. 2006 à 13:38
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
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
8 sept. 2006 à 14:35
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
0
zoffoz Messages postés 9 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 octobre 2006
8 sept. 2006 à 14:43
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
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
8 sept. 2006 à 15:09
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
0
zoffoz Messages postés 9 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 octobre 2006
8 sept. 2006 à 15:31
merci, mais cette entete doit etre dans quel fichier...
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
8 sept. 2006 à 15:40
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
0
zoffoz Messages postés 9 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 octobre 2006
8 sept. 2006 à 17:44
ça ce gere dans la conf d'apache ?? ou ??
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
8 sept. 2006 à 18:33
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
0
zoffoz Messages postés 9 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 octobre 2006
27 sept. 2006 à 16:25
(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
0
zoffoz Messages postés 9 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 octobre 2006
5 oct. 2006 à 12:59
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+
0
Rejoignez-nous