2010-07-24 13 views
8

Ich lade Sie ein BildLade Bild zu Filestream

OpenFileDialog open = new OpenFileDialog(); 

mit Nachdem ich die Datei auswählen, „offen“ ist mit mehreren Elementen gefüllt, einschließlich des Pfades.

Jetzt möchte ich die Datei in einen Filestream (oder etwas ähnliches) laden, um über einen Webservice gesendet zu werden ... ist das möglich?

dank

+0

Ja, es ist möglich. Weitere Fragen? – Oded

+0

Bei dem Risiko, meine psychischen Fähigkeiten zu belasten, vermute ich, dass mouthpiec tatsächlich nach einem Hinweis sucht, wie man die Datei lädt. Wenn das der Fall wäre, möchten sie vielleicht hier nachschauen: http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/e2f183aa-307e-463d-b846-1ad6418848a3 –

+0

:) Steven, ich Ich habe es geschafft, ein Bild in ein Bildfeld zu laden, aber ich hätte gerne Code, um es in einen Filestream zu laden. – mouthpiec

Antwort

6

Sie die Datei mit FileStream öffnen:

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

Sie dann diese bis zum Kontext Webservice http passieren kann Response.OutputStream Eigenschaft. Sie werden immer noch den richtigen MIME-Typen und verschiedene Header festlegen müssen, aber das funktioniert gut:

HttpContext.Current.Response.OutputStream = file; 

auch sagen, dass der einfachste Weg, eine Datei von einem Web-Service (oder Web-App) zu senden sind, die verwenden Response.WriteFile Methode:

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

Was soll ich tun, wenn dieser "Pfad zur Datei" ein eingebetteter BMP ist? – warmth

+0

@warmth - Greifen Sie auf die eingebettete Datei als Stream zu und übergeben Sie diese an den Ausgabestream. – Oded

2

Ja, es ist möglich, ein Bild

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

oder in einen Strom

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

Aber heiß sollte es an Sie senden ist

sendToWs (img)

+0

Wenn das Bild eine Bitmap ist, wird es in einer Bitmap gespeichert? oder wenn es ein JPEG ist, füllen Sie es in einem JPEG gespeichert, und so weiter? – mouthpiec

+0

Image ist eine abstrakte Klasse, die Funktionen für Bitmap und Metafile bereitstellt. Zum Speichern von Bildern verwenden Sie die satatic-Methode save Image.Save (Pfad, Format), wo das Format ist Formular ImageFormat –

6

versuchen, dies zu entscheiden:

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

ist es möglich, das Dokument aus Buff erstellen? – mouthpiec

+0

Ich habe es geschafft, mit dem normalen "new Bitmap()" Konstruktor zu Bitmap zu konvertieren – mouthpiec