【发布时间】:2018-07-03 17:24:20
【问题描述】:
我有一台 SharePoint 服务器,我想使用 SharePoint CSOM 从服务器直接打开文件。
用户单击按钮 --> 文件(Excel、Word、...)在客户端计算机上使用标准软件打开。
直接意味着,如果我对文件进行更改并单击保存,则文件将直接保存在 SharePoint 服务器上(或者如果我在 Excel 中单击例如“另存为”,建议的路径为“https://sharpoint.url.com/folder”) .
其实我有:
using Microsoft.SharePoint.Client;
var clientContext = new ClientContext("https://sharpoint.url.com");
string relativePath = "/folder/file.xls";
clientContext.Credentials = CredentialCache.DefaultCredentials;
var file = clientContext.Web.GetFileByServerRelativeUrl(relativePath);
clientContext.Load(file);
clientContext.ExecuteQuery();
如果我想直接打开文件(不下载),我现在该怎么办?
【问题讨论】:
-
open the file directly (no download)是什么意思?您有一个指向 Web 服务器上链接的文件。如果你想读取它,你需要将它下载到磁盘,或者从流中读取数据。您是否在问如何访问流而不是保存到磁盘? -
是否可以从流中打开文件?最后,我想要一个打开的 Excel 文件(使用客户端的 Excel 应用程序打开),如果我更改某些内容并点击“保存”,它应该直接保存在我的 SharePoint Server 中。
-
文件是流。但是,如果您希望 Excel 打开文件,则必须将其保存在本地,或将 URL 直接传递给 Excel。它已经知道如何打开 Sharepoint 文件。事实上,至少从 2003 年开始,SharePoint UI 就允许这样做。此外,只需单击 URL 就足以启动 Excel 并加载文件 IF 库和浏览器设置允许它。当您单击库中的 PDF 文件并看到它打开而不是保存时,情况是一样的。
-
库设置控制发送 HTTP GET 请求以获取文件时发送的
content-disposition标头的值。如果值为attachment,则必须保存文件。 浏览器 可能允许或阻止直接打开文件。最后,Excel 已经了解 SharePoint 和文档库,并且可以使用 URL 路径。 -
顺便说一句,这些都与编程无关,它是 SharePoint 配置和 UI。许多人们认为的“SharePoint Development”只不过是配置和管理。 MSDN 文档也无济于事 - 它们实际上会因不涵盖 SP 管理或解释功能及其使用方式而造成伤害。您会在 Technet 中找到它。多年来,人们在代码中创建 webpart 来改变网格的外观,因为 MSDN 没有解释 DataViewWebPart 是如何工作的,也没有解释如何从 UI 中设置网格的样式。
标签: c# sharepoint csom