2010-07-24 61 views
8

我加载使用加载图像文件流来

OpenFileDialog open = new OpenFileDialog(); 

我选择文件后,“打开”填充了几个项目,包括道路的图像。

现在我想将文件加载到文件流(或类似的东西),通过web服务发送......这可能吗?

感谢

+0

是的,这是可能的。还有其他问题吗? – Oded 2010-07-24 16:02:22

+0

在冒着我的精神能力的危险,我怀疑mouthpiec可能实际上正在寻找一些关于如何加载文件的提示。如果是这样的话,他们可能想看看这里:http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/e2f183aa-307e-463d-b846-1ad6418848a3 – 2010-07-24 16:04:41

+0

:)史蒂文,我设法加载文件,例如我设法将图像加载到图片框中,但我想要一些如何将它加载到文件流的代码 – mouthpiec 2010-07-24 16:05:51

回答

6

您可以打开该文件FileStream

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

您可以再通过Web服务HTTP上下文Response.OutputStream财产通过这一点。您仍需要设置正确的MIME类型和各种标头,但这种效果很好:

HttpContext.Current.Response.OutputStream = file; 

说了这么多,最简单的方法来发送从Web服务(或Web应用程序)的文件是使用Response.WriteFile方法:

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

如果“文件路径”是嵌入式BMP,我应该怎么做? – warmth 2014-01-09 17:30:10

+0

@warmth - 将嵌入文件作为流访问并传递给输出流。 – Oded 2014-01-09 18:07:06

2

是有可能产生图像

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

或成流

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

不过热,应该把它是由你来决定

sendToWs(IMG)

+0

如果图像是位图,它会保存在位图中吗?或者如果它是一个JPEG,填充它保存在一个JPEG文件,等等? – mouthpiec 2010-07-24 16:10:15

+0

图像是一个为位图和图元文件提供功能的抽象类。对于保存图像您可以使用satatic方法保存Image.Save(路径,格式),其格式为表单ImageFormat – 2010-07-24 16:27:06

6

试试这个:

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

是否可以从buff重新创建文档? – mouthpiec 2010-07-24 17:04:26

+0

我设法通过使用正常的“新位图()” 构造函数转换为位图 – mouthpiec 2010-07-24 17:31:04