Bonjour,
je vous explique mon problème : j'ai développé une applet java (s'intégrant dans un intranet)permettant d'explorer des données sous forme graphique et d'effectuer des sélections sur celles-ci. Le but final et de récupérer des données sur la sélection effectuée. Pour celà, je dois proposer le téléchargement d'un fichier contenant ces données. Actuellement, la seule solution que j'ai trouvée est la suivante :
1/ J'envoie mes données à une page php dans une requête de type POST :
URL url = new URL(getCodeBase()+"appletresults.php");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
writer = new OutputStreamWriter(conn.getOutputStream());
writer.write(donnees);
writer.flush();
2/ Je recupere la page php afin qu'il l'interprète (et donc qu'il crée le fichier) :
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String ligne;
while ((ligne = reader.readLine()) != null)
{
System.out.println(ligne);
}
3/ je demande l'affichage d'une autre page qui propose le téléchargement de ce fichier :
getAppletContext().showDocument(new URL(getCodeBase()+"appletdownload.php"));
Cette solution marche. Toutefois, ce qui me gène fortement, c'est d'utiliser 2 pages php différentes, une pour la création du fichier, une pour son téléchargement. c'est pourquoi je voudrais savoir s'il existe une solution permettant de tout faire dans une seule page php (ou de créer un fichier "virtuel" sur le poste client et de permettre son dl, ou toute autre solution).
En résumé, existe t'il un moyen simple, a partir d'une applet, de créer un fichier et de proposer son téléchargement?
PS : j'ai essayé de mettre création et téléchargement dans une même page php, mais le problème est le suivant :
- si j'utilise showDocument, il ne me crée pas le fichier (problème de droit, de POST???)
- si j'utilise la première méthode (BufferedReader), il ne me propose pas le téléchargement.
PS2 : la page PHP récupère des variables de session afin de connaitre l'utilisateur pour ecrire le fichier dans un répertoire auquel il a accès
J'espère avoir été a peu près clair, et merci d'avance
Darfeuille