【问题标题】:Convert Byte Array to FileStream将字节数组转换为 FileStream
【发布时间】:2017-01-31 02:28:21
【问题描述】:

我需要帮助将字节数组转换为文件流。我正在使用以下 powershell 脚本从网络下载文档

$wc = New-Object System.Net.WebClient
$bytearr = $wc.downloaddata('URL')

现在,我需要将这个字节数组传递给 FileSteam

$FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
$FileCreationInfo.ContentStream = ## Need to Pass Byte Array as FileStream ##

有什么帮助吗?

【问题讨论】:

  • [IO.MemoryStream]$bytearr ?
  • 谢谢@wOxxOm 我多么天真:(
  • 正是@wOxxOm 我正在寻找powershell示例
  • @wOxxOm 请添加答案。
  • @wOxxOm 我第二个 JPBlanc - 请添加作为答案。

标签: arrays powershell filestream


【解决方案1】:

我不熟悉 Sharepoint API,但查看 FileCreationInformation class 的文档,我发现有一个 Content property 类型为 byte[]。假设它与ContentStream property 具有相同的目的,您可以简单地...

$FileCreationInfo.Content = $bytearr

如果除了填充 $FileCreationInfo 之外,您不需要 'URL' 处的数据,请考虑调用 WebClient.OpenRead method 而不是首先以 Stream 的形式获取数据...

$FileCreationInfo.ContentStream = $wc.OpenRead('URI')

作为最后的手段,为了回答一般性问题,您可以将 byte[] 包装在 MemoryStream 中,将其“转换”为 Stream...

$FileCreationInfo.ContentStream = New-Object -TypeName 'System.IO.MemoryStream' -ArgumentList (,$bytearr)

我在我的代码 sn-ps 中省略了这一点,但如果 SharePoint 客户端无法为您处理,请不要忘记 Close()/Dispose() 您创建的任何 Stream 对象!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 2019-12-10
    • 1970-01-01
    相关资源
    最近更新 更多