2009-07-20 6 views
2

J'utilise SWFUpload pour télécharger des fichiers vers une servlet java (framework spring). Le problème est que la session Web en cours est perdue lors du téléchargement du fichier (elle crée une nouvelle session). J'ai lu que c'est un bug connu et il y a quelques solutions de contournement quelque part mais je ne trouve rien. Est-ce que quelqu'un sait comment le faire fonctionner?SWFUpload et Java: la session est perdue

Merci.

Répondre

0

Avait aussi cela sur la plate-forme .NET. Le problème est que l'objet Flash s'exécute dans un contexte de session différent de celui de votre application Java (il est traité comme un nouveau client). Un moyen de contourner tout cela est de faire en sorte que l'objet publie toutes les informations nécessaires pour renvoyer les téléchargements dans la chaîne de requête.

5

Jetez un oeil à this post sur les forums de SWFUpload. L'ajout de ;jsessionid=XXX à l'URL de téléchargement peut fonctionner pour vous, ou peut-être pas; la cause exacte du problème n'apparaît pas claire. Notez que Flash utilise la pile Wininet (identique à IE), donc si vous utilisez un navigateur différent, vous devez obtenir le cookie de session (connu de votre navigateur) dans le cookie IE.

+0

Il s'agit certainement d'une solution potentielle si votre serveur Web la prend en charge (la plupart des conteneurs Java autorisent l'ID de session dans la chaîne de requête). –

+0

Ça ne marche pas pour moi ... – serg

+0

Qu'est-ce qui ne fonctionne pas, exactement? Notez que ma suggestion utilise un point-virgule plutôt que? pour ajouter les données de session - l'avez-vous utilisé? À quoi ressemble votre URL? –

0

Le bogue que vous décrivez ressemble à this one. Si vous avez le temps, inscrivez-vous simplement pour dire "J'ai aussi ce problème" afin que nous puissions faire comprendre à Adobe que cela affecte beaucoup de gens.

Il est difficile de donner un exemple de la meilleure façon de le faire pour votre situation particulière, car je ne sais pas grand-chose sur le printemps. Cela dit, la manière habituelle de contourner le problème est d'ajouter une variable GET avec la session à l'url de téléchargement, puis de la prendre et de la définir manuellement comme étant la session côté serveur.

Here's un autre SO thread sur ce problème qui a une bonne réponse (malheureusement pas spécifique à Java + printemps, mais pourrait vous donner une meilleure idée).

Espérons que ce soit suffisamment de détails pour bien commencer.