显示PDF - 应用程序页面SharePoint
我正在使用自定义WebPart,为此我需要应用程序页面来呈现PDF文件。显示PDF - 应用程序页面SharePoint
我目前使用以下链接http://support.microsoft.com/kb/306654
它工作正常,在ASP.NET,但在SharePoint中给出了一个空白页。
下面的代码: (PDF文件在同一目录)
Response.ClearContent();
Response.ClearHeaders();
//Set the appropriate ContentType.
Response.ContentType = "Application/pdf";
//Get the physical path to the file.
string FilePath = MapPath("Test.pdf");
//Write the file directly to the HTTP content output stream.
Response.WriteFile(FilePath);
Response.Flush();
Response.End();
工作于它的最后几个小时,让我疯了...任何想法?
几个想法:
如果文件中的SharePoint目录,为什么不直接重定向到它的URL?
如果您使用Fiddler(或Firebug)查看HTTP流量 - 您是否看到内容类型更改?什么是内容(是否为PDF?)
SharePoint和ASP.NET之间的主要区别(假设您正确地获取文件)是页面生命周期略有不同,安全模型。你可能想看看
Reponse.End()
如何工作,以确保它在SharePoint中没有不同。您可以在详细日志记录中运行SharePoint,然后在SharePoint dll上使用.NET Reflector(将日志作为指南),以查看是否有某种奇怪的方式来处理此问题。 SharePoint dll具有相当宽松的日志调用。更多的信息在这里:http://www.andrewconnell.com/blog/archive/2008/06/11/SharePoint-Debugging-and-Logging-Tips-and-Tricks.aspx你有没有考虑栅格化PDF并在页面中直接显示它?这是我们公司正在致力于在SharePoint中查看PDF和其他文档的项目(Vizit)。您仍然需要解决阅读文件的问题,但是您不必使用PDF进行回复,而是使用PNG格式和
<img>
标签内的请求进行响应。
问题可能是这一行:string FilePath = MapPath(“Test.pdf”); 。你确定文件存在吗(当在sharepoint下运行时)? – 2010-05-26 01:45:41
@Raj:这不是问题。文件在同一个文件夹中。另外,如果我使用Byte数组编写PDF,它在ASP.NET中工作,我面临同样的问题。 – spt3210 2010-05-26 13:05:51
我意识到它可以在ASP.NET中使用,但是您的Web部件甚至在Sharepoint中执行?删除Web部件中的所有代码并放入Response.Write(“hello”)。该行是否执行? – 2010-05-26 16:08:09