C# 将字节[]转换为文件流而不写入磁盘
我们从一个web服务获得一个作为C# 将字节[]转换为文件流而不写入磁盘,c#,arrays,filestream,C#,Arrays,Filestream,我们从一个web服务获得一个作为字节[](我们在内部处理)的输入,我们需要上传到另一个只接受文件流的web服务 如何将字节[]转换为文件流,而不在C#中写入磁盘 编辑:这不是重复的。我不是问如何将字节[]转换为内存流或文件流。我在问如何将字节[]转换为文件流,而不写入磁盘。请注意,我需要将数据作为文件蒸汽发送到第三方web服务,我没有访问权限。此web服务仅接受文件流 到目前为止,我有以下代码: string fileWritePath = "c:\\temp\\test.docx"; //h
字节[]
(我们在内部处理)的输入,我们需要上传到另一个只接受文件流的web服务
如何将字节[]
转换为文件流,而不在C#中写入磁盘
编辑:这不是重复的。我不是问如何将
字节[]
转换为内存流或文件流。我在问如何将字节[]
转换为文件流,而不写入磁盘。请注意,我需要将数据作为文件蒸汽发送到第三方web服务,我没有访问权限。此web服务仅接受文件流
到目前为止,我有以下代码:
string fileWritePath = "c:\\temp\\test.docx";
//here fileContent is a byte[]
File.WriteAllBytes(fileWritePath, fileContent);
FileStream fileStream = new FileStream(fileWritePath, FileMode.Open, FileAccess.Read);
我不想将文件写入本地磁盘并创建文件流。如果您绑定到文件流,则必须使用它。如果您不想使用物理硬盘驱动器,可以在系统上安装一个ram光盘,将部分内存映射到虚拟驱动器,并使用此驱动器将
文件流映射到。如果您绑定到文件流,则必须使用它。如果您不想使用物理硬盘,可以在系统上安装一个ram磁盘,将部分内存映射到虚拟驱动器,并使用此驱动器将文件流映射到。使用:
使用:
创建MemoryStream
并将字节[]数组“存储”到其中。外部web服务是否接受文件流?这似乎不可能。光盘上有文件流,可以通过网络访问web服务。这是两件完全不同的事情。我同意@Sefe。粗略地说,FileStream
是资源句柄上的包装器(通常是磁盘上的文件)。此句柄仅在创建文件流的计算机上的本地具有意义。当您将此对象传递给外部web服务器时,底层句柄将没有任何意义。@css除了FileStream之外,web服务怎么可能只有一个呢?如何访问此服务?创建MemoryStream
并将byte[]数组“存储”到其中。外部web服务接受文件流?这似乎不可能。光盘上有文件流,可以通过网络访问web服务。这是两件完全不同的事情。我同意@Sefe。粗略地说,FileStream
是资源句柄上的包装器(通常是磁盘上的文件)。此句柄仅在创建文件流的计算机上的本地具有意义。当您将此对象传递给外部web服务器时,底层句柄将没有任何意义。@css除了FileStream之外,web服务怎么可能只有一个呢?如何访问此服务?请参阅我在原始帖子上面的评论:即使您使用ram磁盘,我认为当您通过网络传输文件流时,文件流也无法工作network@GianPaolo:也许OP说的是web服务,但意思是其他的。请看我在原始帖子上面的评论:即使你使用的是ram磁盘,我认为,当您通过网络传输文件流时,它无法工作network@GianPaolo:也许OP说的是web服务,但它的意思是别的。
using(var stream = new MemoryStream(byteArray)){
SendStreamToService(stream);
}