2015-06-17 2 views
0

Итак, я на самом деле пытаюсь настроить Wopi Host для веб-проекта.Разница между FileStream и WebClient

Я работал с этим sample (тот, который был у Shawn Cicoria, если кто знает это), и он предоставляет полный образец кода, который рассказывает вам, как создавать ссылки для использования серверов Office Web App с некоторыми файлами ,

Моя проблема здесь в том, что его образец работает с файлами, которые находятся на сервере OWA, и мне нужно, чтобы работать с онлайн-файлов (например, http://myserv/res/test.docx Так что, когда он читает содержимое файла, он с помощью этого:.

var stream = new FileStream(myFile, FileMode.Open, FileAccess.Read); 
responseMessage.Content = new StreamContent(stream); 

Но это не работает с файлами «HTTP», поэтому я изменил его с этим:

byte[] tmp; 
using (WebClient client = new WebClient()) 
{ 
    client.Credentials = CredentialCache.DefaultNetworkCredentials; 
    tmp = client.DownloadData(name); 
} 
responseMessage.Content = new ByteArrayContent(tmp); 

, который компилирует и с помощью этого образца, я сумел открыть Excel файлов в моем офисе сети. приложение, но слова и файлы PowerPoint не открываются. Итак, вот мой вопрос.

Есть ли разница между этими двумя методами, которые могут изменять содержимое файлов, которые я читаю, несмотря на то, что WebClient сдает «онлайн-чтение»?

Извините за неясное сообщение, это не так просто объяснить такую ​​проблему. X) Я сделал все возможное.

Спасибо, четыре вашей помощи!

+0

Нет такой вещи, как «http-файл» - у вас там есть URL-адрес, нет файла. Не уверен, что вы подразумеваете под «, который может изменить содержимое файлов, которые я читаю». Если вам нужно изменить файл и затем сохранить его обратно, то веб-сервер должен его поддерживать (и у вас должно быть разрешение ...) –

+0

Нет, мне просто нужно его прочитать. (Извините за объяснения: /). На самом деле, моему серверу веб-приложений Office требуется содержимое файла, который будет отображаться. И «FileStream» может манипулировать только «локальными» файлами, как в ответе ниже. Для разрешений я проверил их. Что я сделал, это то, что я назвал ссылку api моего проекта, которая возвращает содержимое файла, переданного в параметре. Поэтому мне удалось скачать его вот так. Затем я попытался открыть оба файла ppt и docx в программном обеспечении associates. Слово «Идет хорошо»! Но, к сожалению, не powerpoint –

+0

Я не знаю, ясно ли это, это очень сложно объяснить все это:/ –

ответ

1

Есть ли разница между тезисами два метода, которые могут изменить содержание файлов, которые я читаю, несмотря на то, что WebClient позволяет «онлайно чтение»

FileStream открытых a file handle в файл, размещенный локально на диске, или удаленный диск, расположенный в другом месте внутри сети. Когда вы открываете FileStream, вы непосредственно манипулируете этим конкретным файлом.

С другой стороны, WebClient является оберткой вокруг HTTP protocol. Он несет ответственность за создание сообщений HTTP и ответов, позволяющих вам удобно работать с ними. Он не имеет прямого знания о таких ресурсах, как файл или, в частности, где он находится. Все, что он знает, это построить сообщение, соответствующее спецификации, отправляет запрос и ожидает ответа.

Смежные вопросы