0

我需要帮助以编程方式打开在线Sharepoint文件。这些文件需要在Sharepoint上保护(以便用户不能漫步),但我也需要使用我的web部件(它将检查安全性)以某种方式访问​​它。通常情况下,您只需使用链接到Sharepoint文件的超链接,但我们不希望人们共享这些超链接,这样就无法工作。以编程方式使用c打开安全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,我只收到一个文本文件,拥有当前页面的源代码。不知道为什么。

至于处理权限,我打算使用提升权限让程序能够访问文件。

我将不胜感激任何帮助,谢谢。

回答

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(); 
} 

这是否帮助或你有定位的文件名和文件路径问题?

+0

谢谢!我在寻找传输文件的正确方法时遇到了很多麻烦。这是获取文件的方式。 (我使用一个使用子句来模拟一个管理员来获得我想要的访问权限)。 – user1666231 2013-03-07 22:36:06