我需要帮助以编程方式打开在线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:// ...)工作正常,但当我在我的网页上尝试这个时,我只收到一个包含当前页面源代码的文本文档。不知道为什么。
至于处理权限,我计划使用提升的权限让程序获得对文件的访问权限。
感谢您的帮助,谢谢。
答案 0 :(得分: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();
}
这是否有帮助,或者您在查找fileName和filePath时遇到问题?