2010-06-04 12 views
1

Je développe une application qui stocke des images en tant que chaînes Base64 dans les fichiers XML. Je veux également permettre à l'utilisateur de recadrer l'image avant de l'enregistrer dans le fichier, de préférence tout en mémoire sans devoir enregistrer un fichier temporaire, puis le supprimer par la suite. Afin d'afficher l'image nouvellement téléchargée, j'ai besoin de créer un gestionnaire HTTP que je peux lier l'asp: Image à. Les seuls exemples pour ce faire en ligne nécessitent de passer le .ashx un ID puis de tirer l'image d'un DB ou d'un autre magasin de données. Est-il possible de transmettre en quelque sorte les données brutes au fichier .ashx afin de récupérer l'image?Comment puis-je transmettre un fichier System.Drawing.Image brut à un fichier .ashx?

Merci,

Mike

+1

L'opération de récolte est-elle bon marché? Si vous avez déjà l'image sur le disque, vous pouvez simplement passer le nom de fichier XML et les paramètres de recadrage dans le fichier .ashx en tant que chaîne de requête et refaire le recadrage dans le fichier .ashx? – Rup

Répondre

0

J'ai fini par devoir utiliser AJAX et des fichiers temporaires pour y arriver. Il ne semblait pas y avoir un moyen facile de transférer des données binaires directement au gestionnaire.

0

En supposant que vous ne disposez d'un serveur ferme, vous pouvez mettre l'image dans l'état de session.

Cependant, il ne serait pas complètement fiable.

La meilleure façon d'y parvenir est d'utiliser une base de données.

+0

Une base de données n'est pas disponible pour ce projet. Ma seule option de persistance est XML dans ce cas. – mclark1129

+0

Etes-vous sûr? Vous ne pouvez même pas utiliser un MDB ou un répertoire de données SQL Server? – SLaks

0

Une image peut être POST - envoyée à un site comme n'importe quel autre fichier, et un HttpHandler peut capturer les données entrantes et travailler avec.

L'astuce sera juste d'obtenir la représentation en mémoire du fichier envoyé au gestionnaire.