2009-04-21 7 views
1

J'ai un contrôle Wizard avec l'une des pages contenant un contrôle FileUpload. Je veux accéder au flux de fichier au point de la dernière page de l'assistant, mais cela ne semble pas fonctionner. Dans la mesure où je peux voir, vous pouvez seulement accéder au flux de fichier pour le fichier posté sur la publication qui se produit immédiatement après que le contrôle a été utilisé. Comme le fichier sera finalement mis dans un enregistrement DB, je pourrais l'enregistrer à ce stade, mais je préfère éviter cela si possible.Le contrôle ASP.NET FileUpload ne fonctionne pas à l'intérieur du contrôle Wizard

Est-ce que quelqu'un sait d'une solution de contournement pour ce problème?

Répondre

3

Je n'ai pas utilisé ce contrôle moi-même mais comme il est basé sur le contrôle INPUT standard HTML, je pense que vous êtes obligé de recevoir le fichier sur le post-back qui traite ce contrôle. La difficulté à contourner ce problème serait de savoir comment extraire le fichier du système client lorsque vous êtes en sandbox à partir du système de fichiers local, d'où la nécessité du contrôle de téléchargement. Je suggère que vous stockez le fichier dans votre blob DB (ou comme un fichier temporaire sur le système de fichiers, probablement besoin d'un nom de fichier unique, je trouve un GUID fonctionne bien), puis utilisez l'objet Session pour conserver cette référence la fin du processus. La seule autre alternative que je peux penser qui n'implique pas de travail majeur serait de déplacer le téléchargement de fichier à la dernière page de votre assistant.

2

L'affichage de vos étapes d'assistant individuelles peut-il être géré côté client à l'aide de CSS/jQuery plutôt que de conserver POSTing sur le serveur? De cette façon, votre seul POST (résultant du téléchargement) sera à la fin de l'assistant.

+0

Bonne pensée latérale, bonne réponse. – Lazarus

Questions connexes