【发布时间】:2016-12-20 14:07:37
【问题描述】:
我们从网络服务获取输入为byte[](我们在内部处理),我们需要上传到另一个只接受文件流的网络服务。
如何在 C# 中将byte[] 转换为文件流无需写入磁盘?
编辑:这不是重复的。我不是在问如何将byte[] 转换为内存流或文件流。我在问如何将byte[] 转换为文件流而不写入磁盘。请注意,我需要将数据作为文件流发送到我无权访问的第三方 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);
我不想将文件写入本地磁盘并创建文件流。
【问题讨论】:
-
创建
MemoryStream并将 byte[] 数组“存储”到其中。 -
一个外部 web 服务接受 file 流?这似乎是不可能的。文件流位于您的光盘上,并且可以通过网络访问 Web 服务。这是完全不同的两件事。
-
我同意@Sefe。粗略地说,
FileStream是资源句柄(通常是磁盘上的文件)的包装。此句柄仅在您创建 FileStream 的计算机上具有本地含义。当您将此对象传递给外部 Web 服务器时,底层句柄将没有任何意义。 -
@css 除了 FileStream 之外的 Web 服务如何?您如何访问此服务?
标签: c# arrays filestream