2010-07-24 10 views
8

Je chargement d'une image à l'aideLoading image pour Filestream

OpenFileDialog open = new OpenFileDialog(); 

Après avoir sélectionné le fichier, « ouvert » est peuplé de plusieurs éléments, y compris le chemin.

Maintenant, je voudrais charger le fichier dans un flux de fichiers (ou quelque chose de similaire) pour être envoyé via un webservice ... est-ce possible?

grâce

+0

Oui, il est possible. D'autres questions? – Oded

+0

Au risque de forcer mes capacités psychiques, je soupçonne que mouthpiec pourrait effectivement être à la recherche d'un indice sur la façon de charger le fichier. Si tel était le cas, ils pourraient vouloir regarder ici: http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/e2f183aa-307e-463d-b846-1ad6418848a3 –

+0

:) steven, je réussi à charger le fichier, par exemple j'ai réussi à charger une image dans une boîte d'image, mais je voudrais un code de comment le charger sur un flux de fichiers – mouthpiec

Répondre

6

Vous pouvez ouvrir le fichier avec FileStream:

FileStream file = new FileStream("path to file", FileMode.Open); 

Vous pouvez ensuite passer ce grâce au service Web http contexte Response.OutputStream propriété. Vous aurez toujours besoin de définir le type MIME correct et divers en-têtes, mais cela fonctionne bien:

HttpContext.Current.Response.OutputStream = file; 

Ceci étant dit, la meilleure façon d'envoyer un fichier à partir d'un service Web (ou application web) est d'utiliser les Response.WriteFile méthode:

Response.WriteFile("Path To File"); 
+0

Que dois-je faire si ce "chemin d'accès au fichier" est un BMP intégré? – warmth

+0

@warmth - accède au fichier incorporé sous forme de flux et le transmet au flux de sortie. – Oded

2

Oui, il est possible de créer une image

var img = Image.FromFile(/*path*/); 

ou dans un flux

var file = new FileStream("path to file", FileMode.Open); 

Mais chaud, il faut l'envoyer est à vous de décider

sendToWs (img)

+0

si l'image sera un bitmap, sera-t-il enregistré dans un bitmap? ou si c'est un jpeg, remplissez-le être enregistré dans un jpeg, et ainsi de suite? – mouthpiec

+0

L'image est une classe abstraite qui fournit des fonctionnalités pour le bitmap et le métafichier. Pour enregistrer l'image Vous utilisez la méthode satatale enregistrer Image.Save (chemin, format) où format est forme ImageFormat –

6

essayez ceci:

byte[] buff = System.IO.File.ReadAllBytes(open.FileName); 
System.IO.MemoryStream ms = new System.IO.MemoryStream(buff); 
+0

est-il possible de recréer le document de buff? – mouthpiec

+0

j'ai réussi à convertir en bitmap en utilisant le constructeur normal "new Bitmap()" – mouthpiec