[Applet] Ecrire dans un fichier temporaire

Résolu
pikapote Messages postés 66 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 11 mars 2014 - 4 mai 2010 à 12:00
pikapote Messages postés 66 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 11 mars 2014 - 12 mai 2010 à 16:22
Bonjour tout le monde,

Je souhaiterais écrire dans un fichier temporaire.

Je m'explique...

J'utilise la bibliothèque itext pour créer un PDF à partir de deux fichiers :
1. Fichier .txt
2. Fichier .pdf (pour le design du fichier final)

Je dois créer un fichier PDF à partir de ces deux fichiers, sans l'enregistrer sur le serveur. Il faut donc que je puisse l'écrire dans la mémoire directement.

Je pense que cela se situe à ce niveau là de mon code (pour le moment je le fais en local) :

PdfSmartCopy copy = new PdfSmartCopy(document, new FileOutputStream(PATH));



Donc, je ne vois pas trop comment faire, étant donné qu'il me demandé un chemin de fichier.

Merci pour votre aide ...


Tout est bon dans l'cochon !

35 réponses

pikapote Messages postés 66 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 11 mars 2014 1
11 mai 2010 à 11:41
Petite précision : je suis allé vérifié dans le dossier temporaire, et l'applet m'a bien créé le fichier camarche.pdf. Mais il n'a rien fait dedans, comme si je ne pouvais pas y toucher, une fois que celui-ci était créé.


*************************
Here we go !
0
pikapote Messages postés 66 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 11 mars 2014 1
11 mai 2010 à 11:44
En fait, non, je me suis fourvoyé =) Ça ne crée le fichier uniquement quand je lance l'applet en local, avec l'appletviewer.

/* FAUSSE JOIE :'( */


*************************
Here we go !
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
11 mai 2010 à 11:53
Salut,

Si ca ne marche qu'avec l'appletviewer (la création du fichier), c'est sûrement un problème de signature : est-ce que tu es sûr d'utiliser la bonne version de l'applet (redémarre ton serveur web au cas où, vide ton cache de navigateur, redémarre le navigateur). Vérifie bien qu'il te demande l'autorisation d'exécuter l'applet lorsqu'elle se lance.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
pikapote Messages postés 66 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 11 mars 2014 1
11 mai 2010 à 12:04
Alors, je recopie le fichier .jar à chaque modification au sein de mon serveur web.

De plus, je redémarre IE à chaque test.

Par contre, ce que je ne fais pas, c'est "resigner" mon .jar à chaque test. Dois-je le faire systématiquement ?


*************************
Here we go !
0

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

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
11 mai 2010 à 12:07
Salut,

Ah oui, il faut le faire à chaque fois, sinon l'ancien jar signé est écrasé par le nouveau !
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
pikapote Messages postés 66 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 11 mars 2014 1
11 mai 2010 à 12:18
En effet, ça change tout !!! MIRACLE !!!

Bon j'ai d'autres soucis, mais ceux là, me concernent directement (chemin de fichier sur le serveur incorrect, donc il faut que je regarde comment y accéder réellement).

En tout cas, merci pour ton aide !

PS : Mon petit doigt me dit qu'on sera certainement amené à se reparler un de ces jours ... =)


*************************
Here we go !
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
11 mai 2010 à 12:20
Salut,

un de ces jours


Une de ces heures
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
pikapote Messages postés 66 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 11 mars 2014 1
11 mai 2010 à 12:23
Tu commences à me connaître, non ?


*************************
Here we go !
0
pikapote Messages postés 66 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 11 mars 2014 1
11 mai 2010 à 16:30
J'ai honte, mais bon tant pis...

Maintenant, j'ai un souci qui doit provenir du fait que j'ai signé mon applet. En effet, je n'arrive plus à accéder aux fichiers présents sur le serveur.

Quand je lui passe un chemin de fichier comme celui-ci, file:/adresse_serveur/chemin/nom_fichier.txt, le système transforme les / en \. Donc, forcément, le chemin devient faux.

As-tu une idée ?


*************************
Here we go !
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
11 mai 2010 à 16:53
Salut,

Hum, c'est bizarre cà. Mais normalement, ce n'est pas à ton applet d'accéder aux fichiers du serveur (faille de sécurité...) mais à ta servlet d'envoyer le fichier selon une requête HTTP qui lui ai passée.

Si tu persiste à vouloir passer directement par l'applet, montre voir ton code.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
pikapote Messages postés 66 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 11 mars 2014 1
11 mai 2010 à 17:37
Ma servlet ??? Tu me parles chinois, désolé =(

Je pars d'une page .jsp qui appelle mon applet. Ensuite, dans mon applet, j'essaie de récupérer ce fichier pour le lire, et créer mon fichier pdf.

(Dis comme ça, ça parait simple, non ? ^^)

Voici les exemples de code, au cas où ça pourrait t'aider. Merci d'avance.


Déclaration de l'applet dans la page.jsp



Récupération du paramètre pour créer mon File
File source = new File(new URL((getCodeBase(),getParameter("url" )).openStream()));



Bonne soirée... et à demain !


*************************
Here we go !
0
pikapote Messages postés 66 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 11 mars 2014 1
11 mai 2010 à 17:38
Sinon, il y a la solution de passer en paramètre TOUT le contenu de mon fichier.

Mais il me semble que ce sont des string que l'on passe en paramètre, non ? Dans ces cas là, existe-t-il une limite de caractère (255 sûrement) ?


*************************
Here we go !
0
pikapote Messages postés 66 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 11 mars 2014 1
12 mai 2010 à 15:13
Dernière tentative, parce que je n'y comprends plus rien...

Après une multitude de tests, je crois comprendre où se situe mon souci : quand je lui donne une adresse "http://192.168.0.1/chemin/fichier.pdf, une fois que j'exécute l'applet, l'adresse se transforme en "http:\\192.168.0.1\chemin\fichier.pdf".

Donc, ça ne m'étonne pas que je n'arrive pas à accéder au fichier. Mais comment faire pour ne pas transformer l'adresse ? Il ne faut pas que les / se transforment en \...

Merci d'avance !


*************************
Here we go !
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
12 mai 2010 à 15:54
Salut,

Ce serait étonnant que ca vienne de là, mais bon.

Il te suffit de remplacer les "" par des "/" dans ton url d'accès :
taChaine.replaceAll("\", "/"); // un double \ car c'est le caractère d'échappement dans les sstring

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
pikapote Messages postés 66 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 11 mars 2014 1
12 mai 2010 à 16:22
Bon, j'ai réessayer, et ça a marché !!!

Je n'y comprends plus rien... J'ai dû faire une mauvaise manipulation hier.

En tout cas, merci pour ton aide. Il ne me reste plus qu'à vérifier si on peut installer la JRE sans être administrateur...

A bientôt !


*************************
Here we go !
0
Rejoignez-nous