文件流或网络客户端
FileStream or WebClient
我目前正在使用 Microsoft 的 Wopi
和 Office Web App
技术生成一些预览,但我遇到了问题。抱歉我的英语不好,但我会尽量表达自己的意思。
所以!我通过下载文件内容并将其存储到 HttpContent
来生成预览。
首先,我在我项目的 ~/App_Data/
中的文件上进行了尝试。我阅读了它的内容 FileStream
class 并通过使用 StreamContent(myFileStream)
将其转换为 HttpContent
。所以,这很完美!
但是,我需要我的项目来处理存储在只能从 Internet 访问的服务器上的文件(因此物理 URL 应该如下所示:例如 http://myServer/res/file.pdf
)。我不能在这里使用 FileStream
class,所以我这样做了:
byte[] tmp;
using (WebClient client = new WebClient())
{
client.Credentials = CredentialCache.DefaultNetworkCredentials;
tmp = client.DownloadData("http://myServer/res/file.pdf");
}
myHttpContent = new ByteArrayContent(tmp);
问题是这个小示例似乎可以正常工作,但之后不会生成预览,这是我更改的唯一一段代码。 post我在这里检查了一些东西,所以:我确实可以访问该文件并且我可以阅读它。
所以,我的问题是,这是获取文件内容的好方法,它是否已过时,我应该如何尝试对其进行修补?
希望我的 post 足够清楚,感谢阅读!
我认为你可以做到以下几点
MemoryStream ms;
using (WebClient client = new WebClient())
{
client.Credentials = CredentialCache.DefaultNetworkCredentials;
ms = new MemoryStream(client.DownloadData("http://myServer/res/file.pdf"));
}
那么使用内存流的行为应该与您的文件流相同。
我目前正在使用 Microsoft 的 Wopi
和 Office Web App
技术生成一些预览,但我遇到了问题。抱歉我的英语不好,但我会尽量表达自己的意思。
所以!我通过下载文件内容并将其存储到 HttpContent
来生成预览。
首先,我在我项目的 ~/App_Data/
中的文件上进行了尝试。我阅读了它的内容 FileStream
class 并通过使用 StreamContent(myFileStream)
将其转换为 HttpContent
。所以,这很完美!
但是,我需要我的项目来处理存储在只能从 Internet 访问的服务器上的文件(因此物理 URL 应该如下所示:例如 http://myServer/res/file.pdf
)。我不能在这里使用 FileStream
class,所以我这样做了:
byte[] tmp;
using (WebClient client = new WebClient())
{
client.Credentials = CredentialCache.DefaultNetworkCredentials;
tmp = client.DownloadData("http://myServer/res/file.pdf");
}
myHttpContent = new ByteArrayContent(tmp);
问题是这个小示例似乎可以正常工作,但之后不会生成预览,这是我更改的唯一一段代码。 post我在这里检查了一些东西,所以:我确实可以访问该文件并且我可以阅读它。
所以,我的问题是,这是获取文件内容的好方法,它是否已过时,我应该如何尝试对其进行修补?
希望我的 post 足够清楚,感谢阅读!
我认为你可以做到以下几点
MemoryStream ms;
using (WebClient client = new WebClient())
{
client.Credentials = CredentialCache.DefaultNetworkCredentials;
ms = new MemoryStream(client.DownloadData("http://myServer/res/file.pdf"));
}
那么使用内存流的行为应该与您的文件流相同。