0

我需要帮助以编程方式打开在线 Sharepoint 文件。这些文件需要在 Sharepoint 上进行保护(这样用户就不会进入它们),但我还需要使用我的 webpart 以某种方式访问​​它(这将检查安全性)。通常,您可以只使用链接到 Sharepoint 文件的超链接,但我们不希望人们共享这些超链接,这样就行不通了。

我希望用户单击一个链接,并让他们看到该文件的“打开、保存、关闭”对话框菜单。

我试过这个

            String fileName = @"file.txt";
            String filePath = @"~online filePath/"; 

            System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
            response.ClearHeaders();
            response.ClearContent();
            response.Clear();
            response.ContentType = "text/plain"; 
            //or whatever file type, I can code that later
            response.AddHeader("Content-Disposition", "attachment; Filename=" + fileName + ";");
            response.TransmitFile(filePath + fileName);
            //response.Flush();
            response.End();

不幸的是,虽然这适用于本地文件(C://...),但当我在我的网络 fike 上尝试这个时,我只收到一个包含当前页面源代码的文本文档。不知道为什么。

至于处理权限,我计划使用提升的权限让程序获得对文件的访问权限。

我会很感激任何帮助,谢谢。

4

1 回答 1

0

以下是提供文件以供 SharePoint 下载的示例代码

using (SPWeb web = SPContext.Current.Web)
{
    //Get fileName and filePath here
    response.AddHeader("Content-disposition", "attachment; filename=" + fileName);
    response.ContentType = "application/octet-stream";
    SPFile file = web.GetFile(filePath);
    byte[] fileBytes = file.OpenBinary();
    response.OutputStream.Write(fileBytes, 0, fileBytes.Length);
    response.End();
}

这有帮助还是您在定位文件名和文件路径时遇到问题?

于 2013-03-07T21:48:21.020 回答